据我了解,您有一个执行数据访问的基本 dll 和一些从第一个 dll 调用该数据访问逻辑的 WCF 项目,以某种方式将数据库连接字符串传递给基本 dll。
我所做的是将数据库特定设置移动到基本 dll 的属性/设置中,然后在调用服务 app.config 中添加一个配置部分以包含这些设置。
所以,在我的核心 wcf 库中,我会有这样的网络配置:
<?xml version="1.0" encoding="utf-8" ?> <configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WcfServiceLibrary1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup> </configSections>
<!-- OTHER WCF LIBRARY SETTING STUFF -->
<applicationSettings>
<WcfServiceLibrary1.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>temp1</value>
</setting>
</WcfServiceLibrary1.Properties.Settings> </applicationSettings> </configuration>
在我的 WCF 服务中,我会复制这些感兴趣的行(部分和设置):
<?xml version="1.0"?>
<configuration>
<!-- Copied to WCF Service Web.config -->
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WcfServiceLibrary1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<!-- OTHER WEB CONFIG STUFF -->
<!-- Copied to WCF Service Web.config -->
<applicationSettings>
<WcfServiceLibrary1.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>temp1</value>
</setting>
</WcfServiceLibrary1.Properties.Settings>
</applicationSettings>
</configuration>
[编辑]
这可以无缝运行,您将在库中获得如下设置:`Properties.Settings.Default.Setting1'。这是在自动生成的内部类中,因此要访问服务中“Setting1”的值,您可以通过一个简单的类公开它。