C# 在settings.settings中添加自定义类型

C# 在settings.settings中添加自定义类型,c#,settings.settings,C#,Settings.settings,我想使用配置文件。设置保存此结构: struct sR22Protocole { Int32 inputkey; Int32 outputkey; Int32 voltage; Int32 Ohm; Int32 Correction; }; 在设置设计器中,我可以添加不同的类型,但它不会在浏览部分显示我的结构。设计师有没有办法访问我的结构?如果没有,有没有办法通过编程添加它?我相信类(或结构?)必须能够序列化才能在设置文件中使用。当我为应用程序中的默认对

我想使用配置文件。设置保存此结构:

struct sR22Protocole
{
    Int32 inputkey;
    Int32 outputkey;
    Int32 voltage;
    Int32 Ohm;
    Int32 Correction;
};
在设置设计器中,我可以添加不同的类型,但它不会在浏览部分显示我的结构。设计师有没有办法访问我的结构?如果没有,有没有办法通过编程添加它?

我相信类(或结构?)必须能够序列化才能在设置文件中使用。当我为应用程序中的默认对象执行此操作时,我关注了这篇博文:


只需进入浏览部分,键入您的结构、类或枚举名称,同时按类型的命名空间作为前缀。然后,它也会添加到下拉列表中,供您下次使用

在您的示例中:
YourTypeNamespace.sR22Protocole

您的类型必须具有
System.Configuration.SettingsSerializeAsAttribute
属性。
System.Configuration.SettingsSerializeAs
类型的枚举参数指定如何序列化该值,可能的值包括:

  • Xml
  • 二进制的
  • 提供者特定
由于此属性只能应用于类类型,因此您自己的类型必须是类

其次,类型必须具有无参数构造函数。这是因为必须能够分配设置类型的默认实例


如果您刚刚声明了类,则除非您构建了解决方案,否则设计器不会接受该类型。

您能再解释一下吗?您使用的是哪个版本的Visual Studio?我只是在VS2013 Express上用枚举尝试了一下,但没有成功。(它给出了一个“类型“X”未定义。”错误。)它与VS 2010 Express和自定义枚举类型一起工作。如果您使用的是新定义的枚举,比如说枚举,则应重新生成一次以使类型“已知”。我只是尝试添加一个新的枚举作为类型。这是未知的,我认为我做错了什么。但我必须重新编译…@jmbpiano:当时,我正在使用VS2015社区。