2012-02-16 81 views
0

有人可以通過一些這方面的燈​​光?最小化WCF客戶端佔用

如何免除更新Web引用的需要,並儘量減少web.config中的WCF客戶端佔用空間以提高代碼可維護性。

在此先感謝

BB

回答

2

不完全知道你的意思減少WCF客戶端資源佔用 - 但VS工具和svcutil.exe通常做了太多的東西 - 人工手動做事,知道你做什麼,絕對可以最大限度地減少你需要的代碼和配置的數量。

對於這一點,還有的是WCF一堆視頻資源,以該確切的話題涉及:

1

最好的辦法是徹底廢除服務參考。但是,如果您有權訪問包含實際服務接口,操作合同和數據合同的程序集,則只能執行此操作。然後你可以使用的ChannelFactory動態創建一個服務代理:

// Create service proxy 
var factory = new ChannelFactory<IMyServiceContract>("NameOfEndPointInConfigFile"); 
var proxy = factory.CreateChannel(); 

// Call the operation 
var myRequestDataContractType = new myRequestDataContractType(); 
var myResponseDataContractType = proxy.MyServiceOperation(myRequestDataContractType); 

在你的配置文件中的所有你需要的是端點定義:

<system.serviceModel> 
    <client> 
    <endpoint address="net.tcp://localhost:8000/MyService" 
       binding="netTcpBinding" 
       contract="ServiceNamespace.IMyServiceContract" 
       name="NameOfEndPointInConfigFile"> 
    </endpoint> 
    </client> 
</system.serviceModel> 

那大約是最小的,你可以得到。