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