Sie können eine separate Konfigurationsdatei haben, diese muss jedoch "manuell" ConfigurationManager.AppSettings["key"]
gelesen werden. Dadurch wird nur die Konfiguration der laufenden Assembly gelesen.
Angenommen, Sie verwenden Visual Studio als IDE, können Sie mit der rechten Maustaste auf das gewünschte Projekt klicken → Hinzufügen → Neues Element → Anwendungskonfigurationsdatei
Dies wird App.config
dem Projektordner hinzugefügt , und geben Sie Ihre Einstellungen dort unter <appSettings>
Abschnitt ein. Wenn Sie Visual Studio nicht verwenden und die Datei manuell hinzufügen, geben Sie ihr den folgenden Namen: DllName.dll.config . Andernfalls funktioniert der folgende Code nicht ordnungsgemäß.
Nun aus dieser Datei zu lesen haben folgende Funktion:
string GetAppSetting(Configuration config, string key)
{
KeyValueConfigurationElement element = config.AppSettings.Settings[key];
if (element != null)
{
string value = element.Value;
if (!string.IsNullOrEmpty(value))
return value;
}
return string.Empty;
}
Und um es zu benutzen:
Configuration config = null;
string exeConfigPath = this.GetType().Assembly.Location;
try
{
config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);
}
catch (Exception ex)
{
//handle errror here.. means DLL has no sattelite configuration file.
}
if (config != null)
{
string myValue = GetAppSetting(config, "myKey");
...
}
Sie müssen auch einen Verweis auf den System.Configuration-Namespace hinzufügen, damit die ConfigurationManager-Klasse verfügbar ist.
Wenn Sie das Projekt DllName.dll.config
erstellen, haben Sie neben der DLL auch eine Datei, die Sie mit der DLL selbst veröffentlichen müssen.
Das obige Beispiel ist ein grundlegender Beispielcode. Wenn Sie an einem vollständigen Beispiel interessiert sind, lesen Sie bitte diese andere Antwort .
string exeConfigPath = this.GetType().Assembly.Location;
zu etwas wie zu ändern :string exeConfigPath = @"C:\MyFolder\DllFolder\ExeName.exe";