tipos pantalla cómo configuracion compartir archivos .net configuration website windows-applications

.net - configuracion - cómo compartir pantalla en zoom



Compartir el archivo de configuración para la aplicación web y de ventana(Best Way) (3)

Creé una Biblioteca de clases (Componente de procesamiento central) usando C # en Visual Studio 2008 y agregué la referencia en el sitio web. Sitio web que accede a la biblioteca de clases con éxito. Web.config que tiene algunos valores de configuración, que es utilizado por la Biblioteca de clases.

Ahora, quiero acceder al mismo componente y configuración en una aplicación de ventana (C # VS-2k8). Puedo acceder a la misma biblioteca de clase en la aplicación de ventana.

Pero, ¿cómo Share the Web.config archivo Share the Web.config del sitio web con la aplicación Window? Entonces, no tengo que replicar la misma configuración.

Gracias.

Actualización # 1

Más detalles sobre la Pregunta 1: Me gustaría add config file in Class Library lugar de depender del archivo de configuración de la aplicación. Por ejemplo, web.config en el sitio web o app.config en la aplicación de Windows.

Esto es para reducir la duplicación / conflictos de las mismas configuraciones en múltiples aplicaciones.

Actualización # 2

Estoy usando el siguiente código para obtener la configuración desde la ubicación externa desde la ventana y la aplicación web. Pero no funciona para mí.

Archivo D:/test.exe.config

<configuration> <appSettings> <add key="KeyName" value="KeyValue"/> </appSettings> </configuration>

Código detrás:

Configuration config = ConfigurationManager.OpenExeConfiguration("D://test.exe.config"); string strValue = config.AppSettings.Settings["KeyName"].Value;


Tenga en cuenta que si necesita externalizar y luego centralizar nodos como connectionStrings y appSettings , aceptan un configSource para apuntar a un archivo separado.

Sin embargo, no todos los elementos de configuración admiten este atributo.

<appSettings configSource="appSettings.config"/> <connectionStrings configSource="connectionStrings.config"/>

En .NET Framework versión 2.0, ahora puede incluir configuraciones en un archivo separado para todos los elementos de configuración que soportan el atributo configSource. Sin embargo, cuando usa el atributo configSource, debe mover toda la sección al archivo separado porque no hay fusión de las configuraciones del elemento. Hay una escritura de una sola vez en el archivo Web.config cuando se utiliza el atributo configSource. Esto hace que la aplicación se reinicie, pero las actualizaciones posteriores a la sección se escriben directamente en el archivo separado y no provocan reinicios posteriores de la aplicación. Para obtener más información, vea ConfigSource .


Sí, tengo la solución. Gracias a Bob Horn y JoeBilly por sus valiosas aportaciones.

Implementé la configuración según mi requisito. He buscado mucho para la solución completa, pero siempre obtengo los conceptos y una pequeña porción de código, es por eso que estoy proporcionando el código de trabajo completo.

Con la ayuda del código mencionado a continuación, puede lograr lo siguiente y jugar con la configuración que desee.

  1. Common Configuration [CommonDB] se puede definir como un único repositorio y se puede almacenar en un archivo XML externo. La biblioteca de clases obtendrá siempre un valor para la web y para la aplicación de Windows.
  2. La configuración específica del sitio web [WebDBConn] se puede almacenar en web.config.
  3. Ventana La configuración específica de la aplicación [WindowDBConn] se puede mencionar en app.config.
  4. Si desea utilizar la misma clave con valores diferentes [INPUT_PATH] según la aplicación, utilice la misma clave y los valores de diff en wen.config y app.config. Pero recuerde que la clave no debe estar disponible en el archivo common.config; de lo contrario, el valor que está disponible en common.config será recogido.
  5. Lo bueno es que no tiene que cambiar su código para obtener estos valores.

Common.Config para Class Library / Common configuration

<?xml version="1.0" encoding="utf-8" ?> <appSettings> <add key="CommonDB" value="CommonDBValue" /> </appSettings>

Web.Config para el sitio web

<configuration> <appSettings file="D:/Common.config"> <add key="WebDBConn" value="WebDBConnValue" /> <add key="INPUT_PATH" value="INPUT_PATH_WEB" /> </appSettings> </configuration>

App.config para la aplicación de Windows

<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings file="D:/Common.config"> <add key="WindowDBConn" value="WindowDBConnValue" /> <add key="INPUT_PATH" value="INPUT_PATH_WINDOW" /> </appSettings> </configuration>

Código detrás

string configValue = ConfigurationSettings.AppSettings["CommonDB"];

Gracias...


Ese es un problema interesante. Una opción es usar un mecanismo de persistencia diferente que esté destinado a múltiples consumidores, como una base de datos. ¿Puedes almacenar tus datos de configuración allí?

O ... podrías usar la respuesta proporcionada aquí:

Accediendo a App.config en una ubicación diferente del binario