2012-08-08 18 views
11

Oto mój app.configConfigurationManager.GetSection zwraca null

<configuration> 
    <configSections> 
     <section name="procedureList" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.30319, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
    </configSections> 

    <procedureList> 
    <add key="NAS.spBusObjGetLineProd" value="@area='Melt Shop';@endDt=?date?;@dayonly=1;@obj='Melt Shop Business Objective" /> 
    <add key="NAS.spBusObjGetLineProd" value="@area='Cold Mill';@endDt=?date?;@dayonly=1;@obj='Cold Mill Business Objective" /> 
    </procedureList> 
    <appSettings> 
    <add key="Connstr" value=""/> 
    <add key="Userid" value=""/> 
    <add key="Timeout" value=""/> 
    </appSettings> 

</configuration> 

Ale gdy zgłoszę go w kodzie, Dostaję null powrotem

public void samplemethod() 
{ 
    NameValueCollection nvc = ConfigurationManager.GetSection("procedureList") as NameValueCollection; 
    string[] keys = nvc.AllKeys; 
} 

Będę wdzięczny za każdą pomoc skierowaną na zewnątrz co zrobiłem źle

+0

jesteś rzucając go incorrectly.I będzie zakładać przykład poniżej wraz z linkiem można wykorzystać jako punkt odniesienia – MethodMan

+0

Jeśli operacja 'as' obsada nie powiedzie, to zwraca wartość null. Jednak plik konfiguracyjny stwierdza, że ​​typem sekcji jest 'NameValueSectionHandler' - powinieneś przesyłać ten typ podczas wywoływania funkcji GetSection(). –

+0

nawet kiedy zmienić typ do NameValueSectionHandler, nadal jestem coraz null powrotem – edepperson

Odpowiedz

5

Using section handlers to group settings in the configuration file

Na przykład można śledzić coś jak t on po

private void ReadSettings() 
{ 
    NameValueCollection loc = 
    (NameValueCollection)ConfigurationSettings.GetConfig("procedureList"); 
} 

MSDN ConfigurationManager.GetConfig Method

+0

wciąż się zerowa powrotem – edepperson

+5

got it zorientowali się. Miałem konfigurację aplikacji w bibliotece DLL, a nie formularz wywołujący. ponieważ ostatecznie dll zostanie wywołana przez usługę, muszę to naprawić z ConfigurationManager.OpenExeConfiguration. Dzięki za podpicie. – edepperson

+1

Nie ma problemu .. dlatego zawsze pytam deweloperom jeśli debugowania swój kod .. to niesamowite narzędzie Debugger ... glad you got it pracy – MethodMan

1

Jeśli testujesz swój klasa musi skopiować konfigurację do app.config w projekcie testowym.

Powiązane problemy