如何在不知道实现的情况下注册Wcf服务合同

如何在不知道实现的情况下注册Wcf服务合同,wcf,castle-windsor,Wcf,Castle Windsor,如果没有温莎城堡,我会写: var channelFactory = new ChannelFactory<ICredentialService>("Default"); ICredentialService credentialService = channelFactory.CreateChannel(); var channelFactory=新的channelFactory(“默认”); ICredentialService credentialService=chan

如果没有温莎城堡,我会写:

var channelFactory = new ChannelFactory<ICredentialService>("Default"); 
ICredentialService credentialService = channelFactory.CreateChannel(); 
var channelFactory=新的channelFactory(“默认”);
ICredentialService credentialService=channelFactory.CreateChannel();
如何向Castle Windsor API注册Wcf服务合同?

将Nuget包添加到您的项目中

WcfFacility
添加到您的容器中:

container.AddFacility<WcfFacility>();
container.AddFacility();
然后,当您对服务接口有依赖关系时,告诉容器提供WCF客户端:

container.Register(
    Component.For<ICredentialService>()
        .AsWcfClient(WcfEndpoint.FromEndpoint("EndpointName")));
container.Register(
用于()的组件
.AsWcfClient(WcfEndpoint.FromEndpoint(“EndpointName”));
然后,它将使用.config中的命名端点来检索端点的设置

每当从容器解析的类在
ICredentialService
上具有构造函数依赖关系时,容器将注入一个WCF客户端