[英]Create WCF Client without auto generated proxy
看着
似乎創建WCF客戶端的最佳做法是創建代理(非自動生成)。
我一直在網上看了一段時間,我沒有找到任何完整的例子(代理類,web.config)
你能提供資源的例子或鏈接嗎?
我相信這篇文章正是你要問的問題:
但是,分享完成后,手動創建代理可能並不總是最好的利用時間。 這篇文章介紹了這樣做的一些很好的理由 - 你肯定會有更多的控制權,你的客戶可能會有更輕松的時間等等。但總體而言,像這樣手動操作需要更多的時間,並向用戶解釋服務到底如何使用您提供的代理可能會很痛苦。
WCF允許元數據交換和發現是有原因的,VS會自動為您創建代理。
無論哪種方式,它都是一篇很酷的文章和值得學習的技巧。
我就是這樣做的。
獲得服務合同和數據合同
如果我有權訪問服務代碼,我就擁有所有合同。 如果沒有,我可以使用svcutil或Add Service Reference來生成它們。
制作配置
我使用Add Service Reference來獲取app.config文件。 然后我刪除它生成的所有其他內容。 根據需要編輯app.config。
定義工廠
說我有服務合同IFooService
:
interface IFooServiceChannel : IFooService, IClientChannel { }
這就是字面意思。 沒有會員。
創建工廠
fooServiceFactory = new ChannelFactory<IFooServiceChannel>(
"NetTcpBinding_IFooService");
字符串“NetTcpBinding_IFooService”是app.config中binding
元素的name
屬性。
創建頻道
fooService = fooServiceFactory.CreateChannel();
用它
fooService.DoSomething();
最棘手的部分是讓app.config正確。 您需要了解綁定和端點 。 這有點學習曲線,但沒什么大不了的。
以下是基本步驟。
真的很簡單。 沒有自動生成的代碼,沒有服務引用。 使用異步調用和Silverlight會有點復雜,但不會太多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.