您的位置:首页 > 其它

.net 中读取自定义Config文件

2016-10-21 16:11 281 查看
[code]














































































[/code]
[/code]

我们sectionName=”WeiboSectionGroup/SinaSection”

上面的函数就返回如下字符串:

<SinaSection>
<addkey="AppKey"value=""/>
<addkey="AppSecret"value=""/>
<addkey="AuthorizeUri"value="http://api.t.sina.com.cn/oauth/authorize"/>
<addkey="RequestTokenUri"value="http://api.t.sina.com.cn/oauth/request_token"/>
<addkey="AccessTokenUri"value="http://api.t.sina.com.cn/oauth/access_token"/>
<addkey="CallBackUri"value="null"></add>
</SinaSection>

另外此类型,还有一个Type属性,是字符串类型,如上面的配置,读取出来就是“

System.Configuration.NameValueSectionHandler,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089



根据上面的信息,我们就可以首先使用反射的方式,生成对象NameValueSectionHandler,现调用此对的Create方法进行创建NameValueCollection,如下所示:

privatestaticTReturnLoadSection<TReturn>(SectionInformationinformation)whereTReturn:class
{
string[]strs=information.Type.Split(",".ToCharArray(),2);
varhandler=(IConfigurationSectionHandler)Assembly.Load(strs[1]).CreateInstance(strs[0]);
vardoc=newXmlDocument();
doc.LoadXml(information.GetRawXml());
if(handler!=null)
return(TReturn)handler.Create(null,null,doc.ChildNodes[0]);
returnnull;
}

下面提供一个完整的实例:

[code][code]






































[/code]
[/code]


上面是一个抽象类,从上面的类进行继承,就可以实现功能,如下所示:

[code][code]



























[/code]
[/code]







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: