2010-07-20 120 views
3

我正在使用ChannelFactory在運行時爲WCF服務創建代理。我想使用DynamicProxy Castle項目在WCF代理之上創建一個動態代理,以便攔截呼叫並進行模擬。如何爲ChannelFactory生成的WCF代理創建DynamicProxy <T>?

當我嘗試這個,雖然我得到一個錯誤......錯誤消息是:

「這」類型不能是接口本身。

我的代碼是這樣的(其中T是服務合同接口):

var generator = new ProxyGenerator(); 

return (T)generator.CreateInterfaceProxyWithTarget(typeof(T), channel, 
    new[] { new ImpersonationInterceptor() }); 

問題必須與通過的ChannelFactory生成的服務代理是在運行時產生的事實做,但有沒有辦法解決這個問題?

回答

0

是的 - 有 - 使用WCF Facility,它用Castle的DynamicProxy替換WCF代理。

這裏的問題是,您正在嘗試在代理之上構建代理,而遠程代理具有一些......特定行爲,其結果是您遇到的錯誤。

+0

這似乎沒有幫助我的問題。我錯過了什麼嗎?這看起來像是服務端,而不是客戶端。 – 2010-07-20 14:16:07

+0

它適用於.. – 2010-07-20 14:20:04

+0

你能舉一個例子來展示原始問題的解決方案嗎? – 2012-05-01 15:15:34

相關問題