Net应用程序配置机制跟程序集引用大致类似,均具有继承性,如iis几乎每个应用程序都会有一个Web.config,比如我们使用vs2012以上版本创建一个web应用程序会自带一个web.config配置文件,这个配置文件属于整个应用程序全局配置文件,再有某些个别目录下也会存在web.config这样的配置文件,连名字都跟应用程序配置文件相同,那么他们看起来重复出现,到底是为何?
Net的配置具有继承性,怎么理解?比如当前文件夹所拥有的配置则作用范围仅为当前文件夹,如果没有那么他们直接寻找应用程序根目录下config文件并当作自己的配置文件直到应用程序根目录,其查找顺序由下往上,由近及远,与dll引用一样本地找不到就去GAC找直到找不到;其中IIS中各个Web.Config继承性就非常的典型,所以这里也不再举例
SuperSocket使用了Net配置系统,而不是我们平常的一个对象序列化成一个xml文件的私有配置,对比起来减少了配置文件读写次数,且net配置系统本就如此强大
二 SuperSocket私有配置扩展
2.1 TypeProvider
SuperSocket对net配置元素进行一次继承,其代码如下
1 public class TypeProvider : ConfigurationElement, ITypeProvider 2 { 3 /// <summary> 4 /// Gets the name. 5 /// </summary> 6 [ConfigurationProperty("name", IsRequired = true)] 7 public string Name 8 { 9 get { return this["name"] as string; } 10 } 11 12 /// <summary> 13 /// Gets the type. 14 /// </summary> 15 [ConfigurationProperty("type", IsRequired = true)] 16 public string Type 17 { 18 get { return this["type"] as string; } 19 } 20 }