设计问题 - 在DLL级别处理.NET App Config

时间:2011-06-14 20:48:19

标签: wcf .net-3.5 configuration

我有一个基于.NET 3.5的框架,它使用自定义插件进行扩展。总之,插件实现了一个通用接口,核心框架通过反射调用这些接口。框架运作完美,一切都很好,但是......

我现在有一个要求需要一个与WCF服务通信的插件。从表面上看,这很简单,为插件添加服务引用,调用客户端代理代码然后关闭。然而...

由于.NET配置的工作方式,WCF服务客户端配置应驻留在正在执行的应用程序的app.config中。在这种情况下,这是我的插件调用程序应用程序。这个问题是它破坏了插件“模型”,因为通用调用程序应用程序现在必须在其中包含特定于插件的配置。

所以问题是,是否有人知道处理WCF服务客户端配置的替代机制,而不将其置于核心调用程序应用程序配置中?

在周围做了一些狩猎,有一些机制允许DLL to use its own config file。这里的问题是我无法访问服务代理创建的下划线代码,因此似乎无法重定向配置读取。

2 个答案:

答案 0 :(得分:1)

WCF客户端的端点也可以通过编程方式配置

这是一个示例,演示如何在不需要配置文件的情况下调用WCF服务:

var myBinding = new BasicHttpBinding();
var myEndpoint = new EndpointAddress("http://localhost/myservice");
var client = new MyServiceClient(myBinding, myEndpoint);

try
{
    client.MyServiceOperation();
    client.Close();
}
catch
{
    if (client != null)
    {
        client.Abort();
    }
}

相关资源:

答案 1 :(得分:0)

回答我自己的问题:

我似乎找到了解决问题的方法:

http://weblogs.asp.net/cibrax/archive/2007/10/19/loading-the-wcf-configuration-from-different-files-on-the-client-side.aspx

总之,这允许您指定包含由Visual Studio生成的WCF配置的自定义配置文件 - 这意味着可以轻松维护配置。

运行了几个快速测试后,似乎它可以正常工作(在这里和那里进行一些调整(参见页面上的评论)。