2016-11-25 39 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

相關問題