繁体   English   中英

在Castle Windsor WCF Facility中,如何访问端点地址?

[英]In Castle Windsor WCF Facility, how do I access endpoint address?

我已在WCF客户端应用程序中成功使用Castle Windsor WCF集成工具来建立与服务器的连接并发出服务请求:

_container = new WindsorContainer();
_container.Kernel.AddFacility<WcfFacility>();
_container.Register(Component
          .For<IService>()
          .AsWcfClient(new DefaultClientModel(WcfEndpoint.FromConfiguration("Service"))));

// ... 

var service = _container.Resolve<IService>();
service.SomeOperation();

但是,我想向用户显示他们连接的端点地址。 使用svcutil生成的代理对象,可以使用以下方法获取地址:

 var address = client.Endpoint.Address.ToString();

我知道我可以检查应用程序配置并以这种方式获取端点详细信息,但是是否可以直接从Castle Windsor代理对象或配置过程中获取它?

好吧,如果确实需要,有一种方法,但这不是很漂亮:

var service = container.Resolve<IService>();
var meta = (IWcfChannelHolder) service;
var channel = (IClientChannel) meta.Channel;
var address = channel.RemoteAddress;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM