关于c#:如何在app.config中使用用户设置和自定义配置节?


How do I use User settings and Custom Configuration Sections in app.config?

本问题已经有最佳答案,请猛点这里访问。

如何使用app.config中的用户设置和自定义配置部分?

1
2
3
4
 <mySection id="myId">
    <item1 data="info">
    <item2 data="more info">
</mySection>

并将它们链接到一个类型。


App.CONFIG

键值对在哪里?

1
appSettings

怎样?给出实例

1
 

哪个类允许访问用户设置?

2

项目参考必须是什么?

1
 System.Configuration

哪种方法提供基本设置?上面的例子

1
 AppSettings["File_Count"]

给定以下自定义节

1
2
3
4
 <mySection id="myId">
    <item1 data="info">
    <item2 data="more info">
</mySection>

对于"myassembly"中名为"sample.mytype"的类类型,在应用程序文件中声明它需要什么?

1
2
3
<configSections>
  <section name="mySection" type="Sample.myType, myAssembly" />
</configSections>

XML元素映射到C属性的映射是什么?

1
2
mySection   ConfigurationSection
item Type   ConfigurationElement

XML属性到C属性的映射是什么?

1
2
3
4
id      ConfigurationProperty
data    ConfigurationProperty
item1   ConfigurationProperty
item2   ConfigurationProperty

如何声明类型"mytype"的类?

1
public class myType : ConfigurationSection {

如何声明简单属性"id"?

1
2
3
4
5
6
//Inside myType as
[ConfigurationProperty("id", IsRequired = false)]
public string Id {
    get { return (string)this["id"];  }
    set { this["id"]=value;}
}

如何声明item元素的类型?

1
2
3
4
5
6
7
8
//Inside myType as a sub class
public class myTypeElement : ConfigurationElement {
       [ConfigurationProperty("data", IsRequired = false)]
       public string Data {
            get { return (string)this["data"];  }
            set { this["data"]=value;}
        }
}

如何声明item元素?

1
2
3
4
5
[ConfigurationProperty("item1)]
public myTypeElement Item1{
        get { return (myTypeElement)this["
item1"] }
        set { this["
item1"]=value;}
}

如何从组名"myselection"访问这些内容?

1
2
Sample.myType t = (Sample.myType)System.Configuration.ConfigurationManager.GetSection("mySection");
string s = t.item1.data;

这在msdn和其他地方?

如何:使用配置节创建自定义配置节

msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

blog.danskingdom.com/adding-and-accessing-custom-sections-in-your-c-app-config/