Odpowiedzią na nie ręczne tworzenie pliku app.config jest karta Właściwości / Ustawienia projektu programu Visual Studio.
Gdy dodasz ustawienie i zapiszesz, plik app.config zostanie utworzony automatycznie. W tym momencie część kodu jest generowana w przestrzeni nazw { yourclasslibrary .Properties} zawierającej właściwości odpowiadające Twoim ustawieniom. Same ustawienia zostaną umieszczone w ustawieniach applicationSettings pliku app.config.
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ClassLibrary.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ClassLibrary.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>3</value>
</setting>
</BookOneGenerator.Properties.Settings>
</applicationSettings>
Jeśli dodano ustawienie w zakresie aplikacji o nazwie Setting1 = 3, zostanie utworzona właściwość o nazwie Setting1. Te właściwości stają się częścią kompilacji pliku binarnego i są ozdobione DefaultSettingValueAttribute, który jest ustawiony na wartość określoną w czasie projektowania.
[ApplicationScopedSetting]
[DebuggerNonUserCode]
[DefaultSettingValue("3")]
public string Setting1
{
get
{
return (string)this["Setting1"];
}
}
Tak więc, tak jak w kodzie biblioteki klas, używasz tych właściwości, jeśli odpowiednie ustawienie nie istnieje w pliku konfiguracyjnym środowiska uruchomieniowego, zostanie zastosowana wartość domyślna. W ten sposób aplikacja nie ulegnie awarii z powodu braku wpisu ustawień, co jest bardzo mylące za pierwszym razem, gdy nie wiesz, jak te rzeczy działają. Teraz zadajesz sobie pytanie, w jaki sposób można określić naszą własną nową wartość we wdrożonej bibliotece i uniknąć użycia domyślnej wartości ustawienia?
Stanie się tak, gdy odpowiednio skonfigurujemy plik app.config. Dwa kroki. 1. informujemy, że będziemy mieć sekcję ustawień dla tej biblioteki klas i 2. z niewielkimi modyfikacjami wklejamy plik konfiguracyjny biblioteki klas do wykonywalnej konfiguracji. (istnieje metoda, w której możesz zachować zewnętrzny plik konfiguracyjny biblioteki klas i po prostu odwołać się do niego z pliku config.
Możesz więc mieć plik app.config dla biblioteki klas, ale jest on bezużyteczny, jeśli nie zintegrujesz go poprawnie z aplikacją nadrzędną. Zobacz, co kiedyś napisałem: link