[英]Consume same WCF Service from multiple projects in solution
情況:
我有多個項目的解決方案:
現在,我需要在我的可執行應用程序#1中使用WCF服務。 例如,從WCF項目中的UserService
檢索有關用戶的信息。 由於這兩個可執行文件都需要由UserService
處理的登錄,因此我在Shared Project中添加了“ Authenticate”方法。 此認證也由UserService
處理。
問題:
現在,我必須在每個項目中添加一個服務引用,這實際上不是問題。 但是現在我在所有三個項目中都生成了代理類和端點。
我認為這是一個問題,因為我必須更新所有3個服務引用:
題:
是否有任何不錯的解決方案來添加服務引用,而無需在共享項目中創建端點配置,也無需在可執行應用程序中創建代理類?
好的,最近我實現了與此類似的功能,這就是我所做的。 我認為它提供了很好的關注點分離,使您不必在所有可執行文件中生成代理類。
代理類應如下所示:
public class ClientProxy
{
public IMyWCFService service;
public ClientProxy(string uri)
{
// Any channel setup code goes here
EndpointAddress address = new EndpointAddress(uri);
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Transport);
binding.TransferMode = TransferMode.Streamed;
binding.MaxBufferSize = //whatever
binding.MaxReceivedMessageSize = //whatever
...
ChannelFactory<IMyWCFService> factory = new ChannelFactory<IMyWCFService>(binding, address);
service = factory.CreateChannel();
}
}
現在,您的WCF服務項目將包含對ServiceContract的引用,並且您將在此處實現該接口。
您的可執行文件將包含對ServiceContract和ClientProxy項目的引用。
我希望這可以幫助你。 讓我知道您是否需要任何澄清。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.