1

我正在开发一个 n 层智能客户端应用程序。应用程序的客户端部分分为两层。接口应用程序和客户端业务库,用于检索数据并将其提供给接口。数据通过 WCF 服务 net.tcp 和 http 的集合提供,具体取决于客户端连接。

我的问题是接口对 wcf 服务一无所知(如我们所愿),配置 system.serviceModel 绑定信息存储在 lib 的配置中,而不是 exe 中。除非我将 system.serviceModel 部分复制到 exe 配置,否则应用程序无法找到端点。

所以我可以创建一些 Pre-Build 事件来复制 app.config 文件:

attrib -r "$(ProjectDir)app.config" copy "$(SolutionDir)Domain\Client\app.config" "$(ProjectDir)"

但坦率地说,这是废话(它是一个直接副本而不是合并),我想要一种更好的工作方式......有什么想法吗?谢谢

4

1 回答 1

4

您是否尝试过使用该元素从外部配置文件中导入相关部分configSource?本讨论中的最后一个答案提供了一个可能对您有用的解决方案。

从该讨论中引用:

<!-- WCF Configuration Mappings in app.config -->
<system.serviceModel>
  <bindings configSource=".\CommonConfig\ServiceBindings.config" />
  <client configSource=".\CommonConfig\ServiceClient.config" />
</system.serviceModel>

ServiceBindings.config:

<?xml version="1.0" encoding="utf-8" ?>
<bindings>
  <netTcpBinding>
    <binding ... />
  </netTcpBinding>
</bindings>

ServiceClient.config(缩短):

<?xml version="1.0" encoding="utf-8" ?>
<client>
  <endpoint ...>
      ...
  </endpoint>
</client>
于 2009-08-12T17:15:51.257 回答