如何获取WCF配置,如果你做ConifugrationManager.OpenExeConifguration()



这篇文章是我上一篇文章的一个分支。但是,我还没有尝试实现那里提到的内容。我刚刚学会了使用 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.configB的构建后复制到 B 的 bin 目录中。

在类的方法中,在A.dll内部,我将创建我的 wcf 代理,如下所示:

var wcfProx = new MyWCFSvcClient();

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

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

也许ConfigurationManager.OpenMappedExeConfiguration()就是你要找的。

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

在示例代码中,作者将当前配置复制到新文件中,然后以编程方式将新的配置节追加到该文件。

保存更改并重置部分后,他们能够读回设置。

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

相关内容

最新更新