对于非手动创建 app.config 的答案是 Visual Studio 项目属性/设置选项卡。
当您添加设置并保存时,您的 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. 稍作修改,我们将类库的配置文件粘贴到可执行配置中。 (有一种方法可以将类库配置文件保留在外部,然后从可执行文件的配置中引用它。
因此,您可以为类库创建一个 app.config,但如果您没有将它与父应用程序正确集成,它就毫无用处。
看看我之前写的:link