.net 提供了很方便的配置文件方案,可以很方便的存储 Key-Value 数据,连接字符串等。我们也可以扩展 config文件,在configSections中增加自定义配置项,不过确实很繁琐,不过通过第三方程序集可以有效降低难度,比如这里要介绍的Emrys.SuperConfig 。
0. 安装程序包 Emrys.SuperConfig
PM>Install-Package Emrys.SuperConfig
1.创建一个类 UserInfo
class UserInfo
{
public string UserName { get; set; }
public string Email { get; set; }
public int Age { get; set; }
public string BlogUrl { get; set; }
public Color FavoriteColor { get; set; }
public Color DislikeColor { get; set; }
public List<string> Language { get; set; }
}
enum Color{Red,Blue,Black}
2.修改 Web.config/App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="userInfo" type="Emrys.SuperConfig.Section,Emrys.SuperConfig"></section>
</configSections>
<userInfo userName="Emrys" email="i@emrys.me" age="27">
<blogUrl>http://www.cnblogs.com/emrys5/</blogUrl>
<favoriteColor>Blue</favoriteColor>
<dislikeColor>2</dislikeColor>
<language>
<value>Putonghua</value>
<value>Huaipu</value>
<value>English</value>
</language>
</userInfo>
</configuration>
3.读取配置
var user = SuperConfig<UserInfo>.Value;
这基本上就实现了自定义配置项目的存储和读取。
分离配置文件
如果 web.config/app.config中保存太多的自定义配置项,不仅臃肿难以阅读,还不易维护。
如果将自定义配置存储为外部文件,比如新建一个 userInfo.xml,然后web.config中再引用这个文件,感觉就清晰多了。
- userConfig.xml文件
<userConfig userName="Zhangsan" email="zhangsan@qq.com" age="27">
<blogUrl>http://www.cnblogs.com/zhangsan/</blogUrl>
<favoriteColor>Blue</favoriteColor>
<dislikeColor>2</dislikeColor>
<language>
<value>Putonghua</value>
<value>Huaipu</value>
<value>English</value>
</language>
</userConfig>
- web.config
<configuration>
<configSections>
<section name="userConfig" type="Emrys.SuperConfig.Section,Emrys.SuperConfig"></section>
</configSections>
<userConfig configSource="Configs\userConfig.xml">
</userConfig>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
做好分类,从此以后配置文件再也不乱了。
网友评论