/ / Jak w Castle Windsor WCF Facility, jak uzyskać dostęp do adresu punktu końcowego? - c #, wcf, castle-windsor

W WCF Castle Windsor, jak mam uzyskać dostęp do adresu końcowego? - c #, wcf, zamek-windsor

Z powodzeniem używam Castle Integrsor WCF Integration Facility w mojej aplikacji klienckiej WCF, aby uzyskać połączenie z serwerem i wysyłać zgłoszenia serwisowe:

_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();

Chciałbym jednak wyświetlić użytkownikowi adres punktu końcowego, z którym jest połączony. Z svcutil-generowane obiekty proxy, adres można uzyskać za pomocą:

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

Wiem, że mogę zbadać konfigurację aplikacji i pobrać w ten sposób szczegóły punktu końcowego, ale czy można je pobrać bezpośrednio z obiektu proxy Castle Windsor, czy z procesu konfiguracji?

Odpowiedzi:

0 dla odpowiedzi № 1

Cóż, jeśli naprawdę musisz, jest na to sposób, ale to nie jest ładne:

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