在您引用的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中执行代码时使用的值。在您的情况下,您只需要将连接字符串放入应用程序设置中,而不是将其包含在连接字符串部分中。