我正在开发一个n层智能客户端应用程序。应用程序的客户端部分分为两层。接口应用程序和客户端业务库,用于检索接口并向接口提供数据。数据通过一组WCF服务net.tcp和http提供,具体取决于客户端连接。
我的问题是接口不知道wcf服务(我们想要)配置system.serviceModel绑定信息存储在lib的配置中而不是exe中。除非我将system.serviceModel部分复制到exe配置,否则应用程序无法找到端点。
所以我可以创建一个复制app.config文件的Pre-Build事件:
attrib -r "$(ProjectDir)app.config" copy "$(SolutionDir)Domain\Client\app.config" "$(ProjectDir)"
但坦率地说,这是废话(它是一个直接的副本而不是合并),我想要一个更好的工作方式.... 有任何想法吗? 感谢
答案 0 :(得分:4)
您是否尝试使用configSource
元素从外部配置文件导入相关部分? last answer in this discussion提供了可能适合您的解决方案。
引自该讨论:
<!-- 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>