簡體   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