2016-11-25 1 views
0

Как получить соответствующее значение ключа, который я получаю динамически. Я хотел бы использовать систему определяется DictionarySectionHandler, чтобы сделать работу, в выборке данных из моего пользовательского построена раздела конфигурации в файлеWeb.configКак получить значение для ключа в 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> 

Исходник в главном файле CS, из которого я хочу, чтобы извлечь данные из Web.Config

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

Это где я застрял vDomainID бы значение 0/1/2/3/12, на основе этого значения мне нужно получить его соответствующий источник из Web.Config. Любая помощь по этому аспекту будет действительно оценена.

ответ

0

У вас есть пропуски в определении раздела domainsource -> domainSource. Далее убедитесь, что элемент определен в элементе. Тогда это должно сработать.

<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

Yup, thats хороший улов. Спасибо, исправил название с ошибкой, но, похоже, проблема со следующей частью кода, похоже, не работает. 'code'Hashtable statusCodes = ConfigurationManager.GetSection (" domainSource ") как Hashtable; vDomainSource = statusCodes [vDomainID]; 'code' Ошибка при следующем сообщении об ошибке:« ссылка на объект не установлена ​​в экземпляр » – Joby

+0

Протестировано в пустом приложении, работает как ожидалось. Проверьте, имеет ли statusCodes значение null. Если нет, в вашей логике должна быть ошибка. – user1519979

+0

Вот проект https://drive.google.com/open?id=0B_ZUjkv4ovT3OUtlajUtdmptLTA – user1519979