标签:
refer : http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html
上面这篇写很好了.
在做项目时,我们经常会遇到一些资料,我们不知道该把它们安置在何处.
比如公司资料
1.放在数据库 (资料不经常修改,没必要这么大费周章吧).
2.放在代码里头 (也不是说绝对不会改丫,写在代码里变成dll后不容易修改了耶 /.\)
大部分人都会把这样一群资料统统塞进 webConfig appSettings 里头
数据少的话,其实也没什么,只是一但数据多起来,我们就得分类来装置了。
这里我会教大家如果在 webConfig 中写自己的 Element 来不存资料,而不完全的塞在 appSettings 里头
从 appSettings 或者资料
<appSettings> <add key="stringData" value="value" /> </appSettings> string value = ConfigurationManager.AppSettings["stringData"].ToString();
自定义一个 object
<configuration>
<configSections>
<section name="objectSection" type="Project.Config.objectSection" /> <!--要在 configSections 内注册哦-->
</configSections>
<objectSection
stringData="value"
intData="50"
/>
</configuration>
//对应的 Class
//每一个属性一定要用 getter 来获取
public class objectSection : ConfigurationSection
{
[ConfigurationProperty("stringData", IsRequired = true)]
public string stringData
{
get { return this["stringData"].ToString(); }
}
[ConfigurationProperty("intData", IsRequired = true)]
public int intData
{
get { return Convert.ToInt32(this["intData"]); } //这里可以做类型强转等等
}
}
嵌套 object
<configuration>
<configSections>
<section name="objectASection" type="Project.Config.objectASection" />
</configSections>
<objectASection>
<objectBSection
stringData="value"
intData="50"
/>
</objectASection>
</configuration>
public class objectASection : ConfigurationSection
{
[ConfigurationProperty("objectBSection", IsRequired = true)]
public objectBSection objectBSection
{
get { return (objectBSection)this["objectBSection"]; }
}
}
public class objectBSection : ConfigurationElement //子层继承 Element
{
[ConfigurationProperty("stringData", IsRequired = true)]
public string stringData
{
get { return this["stringData"].ToString(); } //这里可以做类型强转等等
}
[ConfigurationProperty("intData", IsRequired = true)]
public int intData
{
get { return Convert.ToInt32(this["intData"]); } //这里可以做类型强转等等
}
}
标签:
原文地址:http://www.cnblogs.com/keatkeat/p/5404128.html