Ваш ответ на создание app.config не вручную - это вкладка Visual Studio Project Properties / Settings.
Когда вы добавляете настройку и сохраняете, ваш app.config будет создан автоматически. На этом этапе создается куча кода в пространстве имен { yourclasslibrary .Properties}, содержащем свойства, соответствующие вашим настройкам. Сами настройки будут помещены в настройки app.config applicationSettings.
<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>
Если вы добавили параметр области действия приложения с именем Setting1 = 3, то будет создано свойство с именем Setting1. Эти свойства становятся при компиляции частью двоичного файла и украшаются атрибутом DefaultSettingValueAttribute, которому присвоено значение, указанное вами во время разработки.
[ApplicationScopedSetting]
[DebuggerNonUserCode]
[DefaultSettingValue("3")]
public string Setting1
{
get
{
return (string)this["Setting1"];
}
}
Таким образом, как и в коде библиотеки классов, вы используете эти свойства, если соответствующий параметр не существует в файле конфигурации среды выполнения, он будет использовать значение по умолчанию. Таким образом, приложение не выйдет из строя из-за отсутствия записи настроек, что очень сбивает с толку в первый раз, когда вы не знаете, как это работает. Теперь вы спрашиваете себя, как можно указать наше собственное новое значение в развернутой библиотеке и избежать использования значения настройки по умолчанию?
Это произойдет, когда мы правильно настроим исполняемый файл app.config. Два шага. 1. мы сообщаем, что у нас будет раздел настроек для этой библиотеки классов и 2. с небольшими изменениями мы вставляем файл конфигурации библиотеки классов в исполняемую конфигурацию. (есть метод, в котором вы можете сохранить внешний файл конфигурации библиотеки классов и просто ссылаться на него из файла config.
Итак, у вас может быть app.config для библиотеки классов, но он бесполезен, если вы не интегрируете его должным образом с родительским приложением. Посмотрите, что я написал некоторое время назад: ссылка