1

有人在2008年提出的問題,大約proxy-generation of client-side behaviors,我想重複一遍。當我在add-service-reference對話框上執行「discover」時,我需要由Visual Studio(或svcutil)「確認」自定義客戶端行爲,將其作爲服務合約或操作的屬性進行修飾。結果將是一個已經具有自動添加的客戶端行爲(和程序集引用)的代理。用客戶端行爲生成WCF代理

從VS 2010 SP1開始,該功能似乎仍然不可用。 VS 2012能做到嗎?有沒有第三方工具可以做到這一點?

p.s.清楚的是,我並沒有提到擴展WSDL功能的問題。我不指望上述訣竅會適用於此。我在Visual Studio的內置代理生成功能中嚴格按照「發現」按鈕的背景進行交談。

回答

0

我不知道,有可能使用SvcUtil工具/加服務的參考,但作爲一種替代.NET Framework中有一個名爲MetadataResolver類,允許您在從MEX/WSDL端點運行時得到配置。

具體來說,你調用Resolve方法返回一個ServiceEndpointCollection實例。 ServiceEndpoint具有Behaviors屬性,該屬性返回服務上定義的行爲集合。

在這種情況下,您不需要用調用服務來檢索您的行爲的屬性來修飾類。這樣做的好處是允許您在一個地方(服務)定義客戶端和服務器的配置,並使它們保持同步(而不是需要在客戶端上完成服務配置更新)。不利之處在於你現在在調用服務時做了兩次調用(儘管過去我已經通過靜態實例並將解析方法的響應保存在內存中來緩解),並且需要公開服務元數據。

相關問題