Oto pomysł miałem:Jak zdobyć wszystkie sekcje z nazwy w sectionGroup applicationSettings w .NET 2.0
chcę mieć mały wykonywalny plik app.config z wielu sekcji, które są umieszczone pod sectionGroup " applicationSettings "(nie" appSettings ", nie muszę zapisywać do pliku). Każda sekcja będzie miała nazwę odpowiadającą modułowi, który powinien zostać załadowany, jeśli jest ustawiony.
Oto przykład:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Executable" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="FirstModule" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Executable>
<setting name="MyFirstSetting" serializeAs="String">
<value>My awesome feature setting</value>
</setting>
</Executable>
<FirstModule path="path to the modules assembly">
<setting name="ImportantSettingToTheModule" serializeAs="String">
<value>Some important string</value>
</setting>
</FirstModule>
</applicationSettings>
</configuration>
Teraz gdybym określić sekcję FirstModule, chcę mój wniosek, aby załadować swój zespół. Jeśli sekcja nie jest zdefiniowana, moduł nie powinien zostać załadowany. Powinno to dotyczyć nie tylko jednego modułu, ale jeszcze nie określonej liczby.
Więc w zasadzie muszę dowiedzieć się o zdefiniowanych sekcjach w czasie wykonywania. Jak to zrobić?
Dodatkowo chcę, aby stało się to przenośnym plikiem wykonywalnym (= musi działać również w Mono), który jest wstecznie kompatybilny z .NET 2.0.
Interesujące może być spojrzenie na projekt na GitHubie (obecnie na this commit).
To pomogło, dziękuję bardzo. Chciałbym dać dwie wersje do bezpośredniego odniesienia się do mojego przykładu, ale nie mogę ... :( – HaMster
Nie ma problemu, z przyjemnością pomogę, możesz zobaczyć moją ostatnią edycję.Zawarłem kilka informacji na temat 'ConfigurationManager.GetSection'. Jeśli nie musisz wykonywać żadnych innych czynności w pliku konfiguracyjnym, zwykle jest to preferowany sposób uzyskiwania dostępu do pliku konfiguracyjnego: –
Konfiguracja config = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None) - to otworzy konfigurację dla bieżącego pliku aplikacja nie trzeba znać ścieżki exe – timothy