2013-07-25 63 views
1

我使用Castle windsor wcf设施来自我托管我的服务。在客户端,我想再次使用wcf工具来使用它们。我想通过循环获取所有操作契约并通过代码注册它们来动态注册客户端的服务,但从配置文件获取端点配置。Castle windsor wcf设施 - 通过配置文件添加客户端

我在互联网上看到的大多数例子都是使用代码来注册它们。我不能使用它,因为我的客户需要更多的灵活性来处理配置文件。下面是我想到的代码,但它无法从配置文件读取客户端端点的配置。

container.Register(Classes 
        .FromAssemblyContaining<IXXX>() 
        .Pick() 
        .If(x => x.IsClass && HasServiceContract(x)) 
        .Configure(c => c.AsWcfClient().LifeStyle.PerWcfOperation())); 

请指教。

在此先感谢

西

回答

6

这里是我如何做它:

container.Register(
    Component.For<ISomeService>() 
     .AsWcfClient(WcfEndpoint.FromConfiguration("*")) 
); 

的 “*” 实际上是一个端点名通配符。您也可以指定一个指定的端点,但使用通配符是我的首选方式(它会选择具有匹配服务接口的任何端点)。

请注意,LifeStyle.PerWcfOperation只适用于服务器端组件,不能在wcf客户端上使用(也许它可以,但我想它不会做任何事情)。

+0

感谢您的回复。我结束了阅读配置文件并浏览“客户”服务列表并注册到容器。 – Sai