在 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;
我在我的 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;