如何解决设计问题-在DLL级别处理.NET App Config
|| 我有一个使用自定义插件扩展的基于.NET 3.5的现有框架。总而言之,插件实现了一个公共接口,核心框架通过反射来调用它们。该框架工作正常,一切都很好,但是... 我现在有一个要求,要求一个与WCF服务通信的插件。从表面上看,这很简单,将服务引用添加到插件,调用客户端代理代码,然后开始。然而... 由于.NET配置的工作方式,WCF服务客户端配置应驻留在正在执行的应用程序的app.config中。在这种情况下,这是我的插件调用程序。这样做的问题是,它破坏了插件“模型”,因为通用调用程序现在必须在其中具有插件特定的配置。 所以问题是,有人知道在不将WCF服务客户端配置放入核心调用程序应用程序配置的情况下的替代机制吗? 经过一番摸索,有一些机制允许DLL使用其自己的配置文件。这里的问题是我无权访问服务代理创建的下划线代码,因此似乎无法重定向配置读取。解决方法
WCF客户端的端点也可以通过编程配置。
这是一个示例,该示例显示了如何在不需要配置文件的情况下调用WCF服务:
构造方法(绑定,EndpointAddress)
, 回答我自己的问题:
我似乎在这里找到了解决问题的方法:
http://weblogs.asp.net/cibrax/archive/2007/10/19/loading-the-wcf-configuration-from-different-files-on-the-client-side.aspx
总之,这使您可以指定一个自定义配置文件,其中包含由Visual Studio生成的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();
}
}
相关资源:
ClientBase 版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。