使用复杂类型的设置

我在.NET项目中使用Settings类。 我在编辑器中注意到,只有某些类型可用作Settings类中各个属性的类型。 如果我想拥有一个属于我的代码或通用集合的枚举的属性,该怎么办? 我该如何实现?

我猜我可以使用部分类机制在一个单独的文件中完成它(因为Settings已经被定义为一个部分类)但是我想看看是否有人同意这个,如果有可能有办法在编辑。

创建一个新的“设置”文件以添加复杂/用户定义的选择类型。 这是一个关于Enum的方法。

第1步 。 创建一个设置文件

替代文字

第2步 。 浏览类型

替代文字

第3步 。 选择类型(Namespace.TypeName)

替代文字

第4步 。 塔达 – 完成

替代文字

要获得要在该列表中显示的自定义类,请确保它具有默认构造函数作为其构建选项之一。 我经过惨痛的教训才学到这个

要回答Jeffrey关于是否可以在设置文件中使用通用列表的评论/问题,答案是肯定的。 您只需手动编辑Settings xml文件。 例如,如果我有以下类:

public class UrlAlias { public string Name { get; set; } public string BaseUrl { get; set; } } 

我可以通过右键单击我的设置文件创建一个列表,然后选择打开方式…

然后选择XML / Text Editor,并将“Type”值设置为完全限定的类名,即:

 Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]" 

完整设置xml如下所示:

          

执行此操作后,您应该具有已创建的自定义设置对象的正确配置列表。

作为分部类的一部分在单独的文件中执行它是完全可以接受的。

如果您希望能够通过配置文件填充复杂对象,我建议使用一些dependency injection框架sa Spring.Net。