在引用的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>
然后,你的网内应用程序,您可以通过调用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中执行代码时使用的值。在你的情况下,你只需要将连接字符串放入应用程序设置中,而不是将其包含在连接字符串部分中。
感谢沃克阐述了这个概念。 –