2016-11-25 76 views
0

如何获取我将动态获取的密钥的相应值。我希望用系统定义DictionarySectionHandler做的工作,Web.Config中如何使用DictionarySectionHandler检索Web.Config中密钥的值

<section name="domainsource" type="System.Configuration.DictionarySectionHandler"/> 

    <domainSource> 
     <add key="0" value="170" /> 
     <add key="1" value="171" /> 
     <add key="2" value="172" /> 
     <add key="3" value="173" /> 
     <add key="12" value="174" /> 
    </domainSource> 

代码块取在的Web.config文件从我的定制配置部分数据源代码在从那里我想从web.config中检索数据的主要CS文件

Hashtable statusCodes = ConfigurationManager.GetSection("domainSource") as Hashtable; 
vDomainSource = statusCodes[vDomainID]; 

这是我坚持vDomainID将是一个值0/1/2/3/12,基地d在这个值上,我需要从Web.Config中获取相应的Source。任何有关这方面的帮助将非常感激。

回答

0

您在domainource - > domainSource部分的定义中有一个误解。进一步确保elemnt被定义在一个元素中。那么它应该工作。

<configuration> 
    <configSections> 
    <section name="domainSource" type="System.Configuration.DictionarySectionHandler"/> 
    </configSections> 
    <domainSource> 
    <add key="0" value="170" /> 
    <add key="1" value="171" /> 
    <add key="2" value="172" /> 
    <add key="3" value="173" /> 
    <add key="12" value="174" /> 
    </domainSource> 
</configuration> 
+0

是的,这是一个很好的结果。谢谢你纠正了拼写错误的部分名称,但似乎有一个问题,以下部分代码似乎并不奏效。 'code'Hashtable statusCodes = ConfigurationManager.GetSection(“domainSource”)as Hashtable; vDomainSource = statusCodes [vDomainID];'code' 错误输出以下错误消息“对象引用未设置为实例” – Joby

+0

已经在空应用程序中测试过它,按预期工作。检查statusCodes是否为空。如果没有,你的逻辑中的其他地方一定有错误。 – user1519979

+0

这里的项目https://drive.google.com/open?id=0B_ZUjkv4ovT3OUtlajUtdmptLTA – user1519979

相关问题