2008-11-15 16 views
5

Estoy escribiendo una aplicación que incluye un sistema de complemento en un ensamblaje diferente.Uso de la configuración de la aplicación en los ensamblajes

El problema es que el sistema de complementos necesita obtener la configuración de la aplicación principal (como el directorio para buscar complementos).

¿Cómo se hace esto, o lo estoy haciendo de la manera incorrecta?

Editar: Me animaron a agregar algunos detalles sobre cómo funciona el sistema de complemento. No lo he solucionado por completo y recién comencé a implementarlo, pero básicamente fui por this article.

+0

Es posible que desee agregar algunos detalles sobre cómo funciona el sistema de complemento. Hay muchas formas diferentes de manejar la comunicación en ambas direcciones entre la aplicación principal y los complementos. – MusiGenesis

Respuesta

3

Deje que la aplicación principal obtenga el directorio del complemento de la configuración de la aplicación y empújelo en el sistema del complemento.

2

¿Quizás podría insertar la configuración como argumento al crear el complemento?

//Get the configuration for the current appDomain 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

//Create the plugin, and pass in the configuration 
IPlugin myPlugin = new AlfaPlugin(config); 

Probablemente necesite una referencia al ensamblaje System.Configuration.

+0

Eso es exactamente lo que estaba diciendo ... – EricSchaefer

1

Puede escribir una sección de configuración personalizada, que le permite escribir objetos que representan un esquema XML. Una vez establecido, puede simplemente solicitar la instancia actual de esa sección.

Puede hacerlo derivando de System.Configuration.ConfigurationSection y escribiendo propiedades que representan atributos y subelementos. Para obtener más información, vea How to: Create Custom Configuration Sections Using ConfigurationSection.

El dominio de aplicación en el que se está ejecutando la biblioteca es el ámbito de configuración actual. El espacio de nombre System.Configuration correlaciona todos los archivos de configuración y presenta una vista unificada.

Para recuperar la instancia actual de una sección, puede usar ConfigurationManager.GetSection(...).

Su complemento debe aceptar una instancia de esta sección en lugar de un objeto general Configuration.

Cuestiones relacionadas