在引用的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中執行代碼時使用的值。在你的情況下,你只需要將連接字符串放入應用程序設置中,而不是將其包含在連接字符串部分中。
感謝沃克闡述了這個概念。 –