博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net分布在指定文件夹的web.confgi或者app.config
阅读量:6215 次
发布时间:2019-06-21

本文共 3250 字,大约阅读时间需要 10 分钟。

.Net里面,ConfigurationManager默认读取的是Web.config或者App.config但是,什么都放在这两个文件里面,感觉太多了,也不好管理配置。于是参考了下别人的资料,自己写了一个例子,例子实现的的是E:\App.config的文件,文件格式如下
要实现这样的功能,就要实现自己的ConfigurationSection,ConfigurationElementCollection,ConfigurationElement 1.ConfigurationSectionpublic class BooksSection : ConfigurationSection { [ConfigurationProperty("books", IsRequired = true)] public string Category { get { return (string)base["Category"]; } set { base["Category"] = value; } } [ConfigurationProperty("", IsDefaultCollection = true)] public BookElementCollection Books { get { return (BookElementCollection)base[""]; } } }2.ConfigurationElementCollection public class BookElementCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new BookElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((BookElement)element).Name; } public override ConfigurationElementCollectionType CollectionType { get { return ConfigurationElementCollectionType.BasicMap; } } protected override string ElementName { get { return "book"; } } public BookElement this[int index] { get { return (BookElement)BaseGet(index); } set { if (BaseGet(index) != null) { BaseRemoveAt(index); } BaseAdd(index, value); } } }3.ConfigurationElement public class BookElement : ConfigurationElement { [ConfigurationProperty("name", IsRequired = true)] public string Name { get { return (string)base["name"]; } set { base["name"] = value; } } [ConfigurationProperty("author", IsRequired = true)] public double Author { get { return (double)base["author"]; } set { base["author"] = value; } } }4.0Config文件
5.0读取 static void Main(string[] args) { string configPath = @"E:\App.config"; ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = configPath; var configManager = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); if (configManager.HasFile) { BooksSection config = (BooksSection)configManager.GetSection("books"); Console.WriteLine(config.Books[0].Name); } }结果123请按任意键继续. . .

 

转载于:https://www.cnblogs.com/kexb/p/6880067.html

你可能感兴趣的文章
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
App开发中甲乙方冲突会闹出啥后果?H5 APP 开发可以改变现状吗
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>
我的友情链接
查看>>
ToRPC:一个双向RPC的Python实现
查看>>
netty框架的学习笔记 + 一个netty实现websocket通信案例
查看>>
我的友情链接
查看>>
nginx在reload时候报错invalid PID number
查看>>
神经网络和深度学习-第二周神经网络基础-第二节:Logistic回归
查看>>
Myeclipse代码提示及如何设置自动提示
查看>>
setTimeOut(),和setInterVal()调用函数加不加括号!!!
查看>>
c/c++中保留两位有效数字
查看>>
urlparse获取url后面的参数
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>