【问题标题】:How to get WCF configurations if you do ConifugrationManager.OpenExeConifguration()如果您执行 ConifugrationManager.OpenExeConifguration() 如何获取 WCF 配置
【发布时间】:2012-05-24 15:41:19
【问题描述】:

这篇文章是我之前post 的一个分支。但是我还没有尝试实现那里提到的内容。我刚刚学会了使用ConfigurationManager.OpenExeConfiguration() 来加载配置。下一个自然而然的问题是如何管理 WCF 配置?

我所做的:我创建了一个类库项目(称为A),并添加了对 wcf 服务的引用。 A 有一个 app.config 文件作为项目的一部分。因此,VS 将在那里自动生成配置。所以当我构建A 时,我会在A 的bin 文件夹中生成A 的程序集(A.dllA.dll.config

我在解决方案中添加了另一个项目 (B)。添加A 项目作为参考。因此在构建B 时,A.dll 将被复制到B 的 bin 文件夹中。我还修改了我的构建属性,以便将A.dll.config 的构建后B 复制到B 的bin 目录中。

在一个类的方法中,在 A.dll 内部,我会创建我的 wcf 代理,例如:

var wcfProx = new MyWCFSvcClient();

这个构造函数的调用实际上是从正在执行的程序集的配置文件中挑选值。如果我想让我的 wcf 代理工作,我知道我必须将 A 的 app.config 中的 system.ServiceModel 复制到 B 的配置文件中。这就是我以前一直在做的事情。

但是现在,如何处理我通过ConfigurationManager.OpenExeConfig() 打开的Configuration 对象,以及如何将该对象关联到我的wcf 代理实例?这意味着代理实例应该从A.dll.config 派生值。

【问题讨论】:

    标签: .net configuration .net-assembly wcf-configuration


    【解决方案1】:

    也许 ConfigurationManager.OpenMappedExeConfiguration() 是您正在寻找的。​​p>

    http://msdn.microsoft.com/en-us/library/ms134269.aspx

    在示例代码中,作者将当前配置复制到一个新文件中,然后以编程方式将一个新配置部分附加到该文件中。

    保存更改并重置该部分后,他们可以重新读取设置。

    我无法确定这是否会改变当前正在运行的应用程序的配置,但值得一试。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多