Pregunta

¿Es posible mover applicationSettings a otro archivo de configuración como es posible con connectionStrings o appSettings?

Cuando creo configuraciones para mi aplicación web usando el diseñador, obtengo la sección applicationSettings en mi web.config como:

  <applicationSettings>
    <TestWebApplication.Properties.Settings>
      <setting name="AnotherSetting" serializeAs="String">
        <value>Another setting value</value>
      </setting>
    </TestWebApplication.Properties.Settings>
  </applicationSettings>

Me gustaría poder moverlos a otro archivo como appSettings:

<appSettings configSource="config\appsettings.config"/>

Estoy trabajando con un proyecto que tiene muchas configuraciones a las que se accede a través de la clase generada con el diseñador y web.config es extremadamente difícil de mantener entre múltiples entornos. Sería aún mejor si pudiera forzar a la clase Configuración a usar appSettings y no applicationSettings.

¿Es posible?

Gracias de antemano por la ayuda.

¿Fue útil?

Solución 5

Esta pregunta no se marcó como respuesta durante bastante tiempo. Bueno, bajo la respuesta de marc_s hay comentarios que explican que esto es imposible. No quería marcar la respuesta de marc_s como respuesta aceptada porque los comentarios dicen exactamente lo contrario de la respuesta. Entonces, la respuesta es que, desafortunadamente, no es posible.

Otros consejos

Muuuy tarde para esta pregunta, pero acabo de golpearme la cabeza contra la pared sobre esta. Resulta que puede hacer esto, pero no para todo el nodo applicationSettings, debe hacer cada nodo secundario de applicationSettings por separado. Obtuve la información mágica de la parte inferior de Artículo de MSDN SectionInformation.ConfigSource .

contenido de app.config / web.config

<applicationSettings>
    <TestWebApplication.Properties.Settings configSource="externalfile.config" />
</applicationSettings>

contenido de archivo externo.config:

<TestWebApplication.Properties.Settings>
    <setting name="AnotherSetting" serializeAs="String">
        <value>Another setting value</value>
    </setting>
</TestWebApplication.Properties.Settings>

Sí, por supuesto que es posible! Cualquier sección de configuración en cualquiera de sus archivos de configuración puede ser & Quot; externalized & Quot; mediante configSource = " otherConfigFile.config " atributo.

  

Sería aún mejor si pudiera   forzar la clase de configuración para usar   appSettings no applicationSettings.

Para hacer eso, debes alejarte del uso de la agradable imagen " Configuración " clases en .NET y use el ConfigurationManager directamente. De esa manera, puede poner su configuración en & Lt; appSettings & Gt; y léelos usando ConfigurationManager.AppSettings [" keyname "].

Marc

Si fuera mi proyecto, me desharía de la configuración de la aplicación y movería todo a la sección de configuración de la aplicación. El valor de applicationSettings es que los valores pueden estar fuertemente tipados y disponibles para Intellisense. Ninguno de los dos es especialmente ventajoso para su situación. Por supuesto, ese gran éxito de mover todo no vale la pena si todavía está creando configuraciones a través del diseñador.

Hmm ... Sé que esto es posible, porque sé que estábamos haciendo esto en un trabajo anterior. Sin embargo, no recuerdo exactamente cómo. Creo que teníamos un proyecto principal del que estábamos usando para heredar la configuración, y había un paso manual por el cual si hacíamos cambios en la configuración de la aplicación en un subproyecto, necesitábamos copiar manualmente los cambios en el proyecto primario (pero luego fueron heredados por todos los proyectos secundarios).

Perdón por la falta de especificidad; No fui yo quien implementó la solución, y con el tiempo me ha quedado un poco borrosa. Sin embargo, recuerdo que pudimos hacer esto, y creo que mis recuerdos son precisos sobre cómo lo estábamos haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top