我在下面写下我关于复制配置的意思。但我不认为这是问题所在。问题可能是您甚至没有进行 WCF 通信。我怀疑您在服务项目和客户端项目中都包含了 DLL,并且您很简单地从客户端调用类上的方法。
做 WCF 通信,您需要让 WCF 服务运行(例如,创建ServiceHost
带有端点的 EXE)。然后在客户端中,使用 Visual Studio 的“添加服务引用”菜单项添加服务引用。
无需在客户端中包含 DLL,因为将自动生成类以通过 WCF 访问服务。
现在正确使用应用程序设置:
app.config
将 DLL文件的应用程序设置复制到使用 DLL 的app.config
可执行项目的文件中。例如,这可能看起来像这样:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Executable.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="DLL.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Executable.Properties.Settings>
<setting name="Test" serializeAs="String">
<value>Testvalue EXE</value>
</setting>
</Executable.Properties.Settings>
<DLL.Properties.Settings>
<setting name="Test" serializeAs="String">
<value>Testvalue DLL</value>
</setting>
</DLL.Properties.Settings>
</applicationSettings>
</configuration>
之后,应用程序可以通过Properties.Settings.Default.Test
(返回Testvalue EXE
)访问其设置,DLL 可以通过Properties.Settings.Default.Test
(返回Testvalue DLL
)访问其设置。
I don't understand why people need to use things like ConfigurationManager
when it is actually that simple...