在引用的 DLL 的 app.config 文件中硬编码数据库连接可能不是最佳方法。在 web.config 文件(或 machine.config 用于机器范围的设置)中设置数据库连接字符串将允许 DLL 的其他使用者使用不同的连接字符串。例如,如果您有不同的开发、质量保证或用户接受环境,其中每个部署的 Web 应用程序都需要不同的数据库,这将非常有用。
但是,如果该方法不符合您的需求,您可以使用应用程序设置来使用和/或覆盖另一个引用 DLL 的默认值。例如,如果您有一个名为 Foo 的程序集,并且在其中使用了设置属性,那么您的 Foo 的 app.config 文件中的一部分内容如下:
<applicationSettings>
<Foo.Properties.Settings>
<setting name="MyProperty" serializeAs="String">
<value>MyValue</value>
</setting>
</Foo.Properties.Settings>
</applicationSettings>
然后,在您的 Web 应用程序中,您可以通过调用 Foo.Properties.Settings.MyProperty 来使用此属性。这种方法还允许您设置 Foo 程序集可以使用的值。在您的 web.config 文件中,您将包含该部分...
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Foo.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
...然后添加 Foo.Properties.Settings 部分,使用您希望 Foo.DLL 在作为 Web 应用程序的一部分包含时使用的值对其进行更新。
这种方法允许您设置应用程序在引用的 DLL 中执行代码时将使用的值。在您的情况下,您只需将连接字符串放入应用程序设置中,而不是将其包含在连接字符串部分中。