2011-10-06 7 views
7

tengo mi appSettings definido en un archivo de configuración separado llamado Appsettings.Dev.Config, e incluyo a ese archivo dentro de mi archivo web.config al igual que¿Cómo se puede hacer referencia a que una appSetting en una parte diferente del web.config

<appSettings configSource="ConfigFiles\AppSettings.Dev.config"/> 

permite decir uno de los valores del archivo es

<add key="MailerEmailAccount" value="[email protected]" /> 

¿Puedo acceder al valor de la MailerEmailAccount establecer en otros lugares dentro de web.config? ¿Cómo?

Respuesta

4

No, el archivo de configuración web no puede extraer "configuraciones" de sí mismo; no es dinámico en absoluto. El único tipo de funcionalidad dinámica es la capacidad de incluir otro .config, pero eso es solo un "chupar todas estas configuraciones como si fueran parte de mí".

+0

hago eso (tirar en la configuración de otro archivo) para appsettings y utilizando el connectionStrings atributo configSource. Eso no parece funcionar para la etiqueta mailSettings dentro de la etiqueta system.net (o para la etiqueta system.net). ¿Hay alguna manera de obtener configuraciones además de appSettings y connectionStrings de otros archivos? – floatingfrisbee

+0

No estoy seguro si hay limitaciones a eso; como tú, lo uso principalmente para appSettings y connectionStrings. Si está utilizando VS2010, también podría considerar las transformaciones de Web.Config: http://weblogs.asp.net/srkirkland/archive/2009/10/13/common-web-config-transformations-with-visual-studio -2010.aspx – CodingGorilla

+0

Resulta que las etiquetas system.net y mailSettings no pueden obtenerse de un archivo diferente. Sin embargo, la etiqueta smtp (que es hija de mailSettings) puede ser. Estoy usando transformaciones web.config, pero este problema en particular no pudo ser resuelto por eso. Gracias. – floatingfrisbee

4

Podría ser posible si crea un ConfigurationSection personalizado que extraiga el valor de appSettings.

He aquí un artículo que explica cómo crear una sección de configuración personalizada:
http://haacked.com/archive/2007/03/12/custom-configuration-sections-in-3-easy-steps.aspx

No sé si esto es lo que está buscando, pero es la única manera que puedo pensar para leer una configuración de web.config dentro del web.config.

EDITAR

No he probado esto, pero tal vez algo como esto funcionaría ?:

[ConfigurationProperty("localName", IsRequired = true, IsKey = true)] 
public string LocalName 
{ 
    get 
    { 
     return this["localName"] as string; 
    } 
    set 
    {     
     this["localName"] = WebConfigurationManager.AppSettings.Get(value); 
    } 
} 
+0

Gracias por ese enlace pirateado y el fragmento de código. No estoy seguro de que el código funcione para lo que necesito en este momento, pero es una buena idea. – floatingfrisbee

Cuestiones relacionadas