walczę z konfiguracją i ustawianie klas w .NET 2.0AppSettings z plików niestandardowych
Jeśli następuje contaned w pliku o nazwie app.config
<config>
<appSettings>
<add key="Foo" value="Hello World!"/>
</appSettings>
</config>
wiem, że mogę wejść do AppSetting przez
// this returns "Hello World!"
ConfigurationManager.AppSettings["Foo"]
Jednak jeśli plik nosi nazwę app1.config
(lub inną nazwę), nie mogę uzyskać dostępu do aplikacji Konfigurowanie. Tak długo, jak rozumiem, z ConfigurationManager.OpenExeConfiguration
powinienem czytać niestandardowe pliki ustawień konfiguracji.
Configuration conf = ConfigurationManager.OpenExeConfiguration(@"..\..\app1.config");
// this prints an empty string.
Console.WriteLine(conf.AppSettings.Settings["Foo"]);
Jednak conf.AppSettings.Settings["Foo"]
zwraca pusty ciąg znaków.
Próbowałem również następujący kod, ale bez powodzenia
ExeConfigurationFileMap exeFileMap = new ExeConfigurationFileMap();
exeFileMap.ExeConfigFilename = System.IO.Directory.GetCurrentDirectory()
+ "\\App1.config";
Configuration myConf = ConfigurationManager.OpenMappedExeConfiguration
(exeFileMap, ConfigurationUserLevel.None);
// returns empty string as well
Console.WriteLine(myConf.AppSettings.Settings["Foo"]);
Jak odczytać ustawienia z pliku o nazwie nie app.config?
'ConfigurationManager.OpenExeConfiguration (@" .. \ .. \ app1.config ");' nie działa? – aiapatag
Punktem jest conf.AppSettings.Settings ["Foo"] zwraca pusty ciąg znaków. Spodziewałem się "Hello World!" – user1813
OpenExeConfiguration pobiera Ścieżkę pliku wykonywalnego (exe) jako parametru, a nie ścieżkę do pliku ustawień – Arie