Pregunta

Estoy escribiendo una .dll C # .NET 2.0 que es un complemento de una Aplicación más grande . El proyecto de estudio visual para mi módulo tiene un archivo app.config que se copia en un MyProj.dll.config junto a MyProj.dll.

El plan es que MyProj.dll.config se editará después de que se implemente el archivo .dll. Estoy tratando de leer mi configuración de ese archivo local modificado. He intentado extraer LocalFilesSettingsObject y cambiar su nombre de aplicación a mi .dll de esta manera:

        Properties.Settings config = Properties.Settings.Default;
        SettingsContext context = config.Context;
        SettingsPropertyCollection properties = config.Properties;
        SettingsProviderCollection providers = config.Providers;
        SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"];
        configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name;
        config.Initialize(context, properties, providers);
        config.Reload();

Eso no está funcionando. Estoy luchando para envolver mi cabeza alrededor de todo el lío de Configuración de .NET. Me gustaría una receta para terminar esta tarea. También me gustaría un enlace a una explicación clara (con ejemplos) de cómo se supone que funcionan las configuraciones en .NET 2.0

¿Fue útil?

Solución

Deberá cargar el x.dll.config (con la API de configuración) usted mismo. Todo el manejo automático de archivos (incluido el .Settings ) tiene que ver con machine.config / y.exe.config / user-settings.

Para abrir un archivo de configuración con nombre:

  • Conjunto de referencia System.Configuration.dll .
  • Utilizando System.Configuration
  • Crear código como:

    Configuration GetDllConfiguration(Assembly targetAsm) {
      var configFile = targetAsm.Location + ".config";
      var map = new ExeConfigurationFileMap {
        ExeConfigFilename = configFile
      };
      return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    }
    

Otros consejos

1- abrir el archivo app.config en visual studio

2- en la configuración " " etiqueta agregue sus configuraciones en la etiqueta " appSettings " como abajo:

<configuration>
    <appSettings>
        <add key="UserName" value="aaa"/>
        <add key="Password" value="111"/>
    </appSettings>
</configuration>

3- en tu código c #

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
string userName = appConfig.AppSettings.Settings["UserName"].Value;
string password = appConfig.AppSettings.Settings["Password"].Value;

y no olvide agregar estos 2 usos para " ConfigurationManager " y para " Asamblea "

  • utilizando System.Configuration;
  • utilizando System.Reflection;

si la Configuración del sistema no se muestra, debe agregar la referencia " Configuración del sistema " en las Referencias

4- puede actualizar las configuraciones para la dll de la siguiente manera:

  • abre el archivo " MyProj.dll.config "
  • luego actualice sus configuraciones
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top