2012-08-08 15 views
11

Aquí es mi app.configConfigurationManager.GetSection devuelve 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> 

Pero cuando llamo en el código, me estoy poniendo un nulo volver

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

Le agradecería cualquier ayuda señalando lo que he hecho mal

+0

lo estás copiando incorrectamente. Publicaré un ejemplo a continuación junto con un enlace que puedes usar como referencia – MethodMan

+0

Si la operación de conversión 'as' falla, devuelve un valor nulo. Sin embargo, el archivo de configuración indica que el tipo de sección es 'NameValueSectionHandler'; debería estar creando este tipo al llamar a GetSection(). –

+0

incluso cuando cambio el tipo a NameValueSectionHandler, sigo recibiendo un nulo – edepperson

Respuesta

5

Using section handlers to group settings in the configuration file

Por ejemplo, puede seguir algo así como t lo siguiente

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

MSDN ConfigurationManager.GetConfig Method

+0

sigue obteniendo nulo – edepperson

+5

lo tengo resuelto. Tenía la configuración de la aplicación en el dll, no el formulario de llamada. ya que en última instancia un servicio llamará al dll, necesito solucionarlo con ConfigurationManager.OpenExeConfiguration. Gracias por el empuje. – edepperson

+1

No hay problema ... es por eso que siempre pregunto a los desarrolladores si depuran su código ... es una herramienta increíble, el depurador ... me alegra que lo haya conseguido – MethodMan

1

Si está probando su clase de su debe copiar la configuración a la app.config en su proyecto de prueba.

Cuestiones relacionadas