我有一个基于.NET 3.5的框架,它使用自定义插件进行扩展。总之,插件实现了一个通用接口,核心框架通过反射调用这些接口。框架运作完美,一切都很好,但是......
我现在有一个要求需要一个与WCF服务通信的插件。从表面上看,这很简单,为插件添加服务引用,调用客户端代理代码然后关闭。然而...
由于.NET配置的工作方式,WCF服务客户端配置应驻留在正在执行的应用程序的app.config中。在这种情况下,这是我的插件调用程序应用程序。这个问题是它破坏了插件“模型”,因为通用调用程序应用程序现在必须在其中包含特定于插件的配置。
所以问题是,是否有人知道处理WCF服务客户端配置的替代机制,而不将其置于核心调用程序应用程序配置中?
在周围做了一些狩猎,有一些机制允许DLL to use its own config file。这里的问题是我无法访问服务代理创建的下划线代码,因此似乎无法重定向配置读取。
答案 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)
回答我自己的问题:
我似乎找到了解决问题的方法:
总之,这允许您指定包含由Visual Studio生成的WCF配置的自定义配置文件 - 这意味着可以轻松维护配置。
运行了几个快速测试后,似乎它可以正常工作(在这里和那里进行一些调整(参见页面上的评论)。