2

在修改 .NET 设置文件时,我可以选择设置的类型。但是,即使在“浏览”窗口中,也不会出现我的项目可访问的所有类型。

什么决定了一个类型是否可以用于设置文件设置?

我创建了一个我希望能够保存的类型,并且我想知道我需要对其进行哪些更改才能在设置文件中使用它。

(VS 2008 - .Net 3.5)

4

2 回答 2

0

“浏览”窗口中出现什么类型 - 我相信答案是可序列化类型。下面是一个对我有用的例子(VS 2012,.Net 4.0)。

具有公共可序列化成员的类:

class Person {
    public string Name;
    public int Age;
}

在设计器的设置值中写什么:

<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Name>John</Name>
    <Age>42</Age>
</Person>
于 2012-10-04T18:50:45.373 回答
0

您需要做的是稍微“破解” .settings 和 .Designer.cs 文件,如此所述。

如果您在项目中创建自定义类型,例如:

namespace MyApp
{
    public struct MyType
    {
        public string StringValue;
    }
}

要让它在设置编辑器中显示为一个选项,您需要将使用该类型的第一个设置值添加到文件中,如下所示:

SettingsFile.settings:

<Setting Name="SettingNameGoesHere" Type="MyApp.MyType" Scope="User">
  <Value Profile="(Default)" />
</Setting>

设置文件.Designer.cs

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::MyApp.MyType SettingNameGoesHere {
    get {
        return ((global::MyApp.MyType)(this["SettingNameGoesHere"]));
    }
    set {
        this["SettingNameGoesHere"] = value;
    }
}
于 2010-07-29T17:58:28.790 回答