2015-01-13 53 views
0

ClientBase提供了一個實現T ServiceContract接口的Channel屬性。這個類自動實現接口的方法是什麼,並且是否有一個例子來說明如何實現這個方法(即,對於我自己的類)?ClientBase <T>如何實現ServiceContract通道接口?

+0

的['的ChannelFactory '](http://msdn.microsoft.com/en-us/library/ms734681%28v=vs.110%29.aspx)是你的男人。這裏還有一個很好的討論[通道工廠與WCF中的生成代理](http://stackoverflow.com/questions/1698275/wcf-channelfactory-vs-generating-proxy)。 –

回答

4

眼看Reference Source,它看起來像它使用一個通道工廠...

爲了使很長挖短,認爲這 - 什麼你問的是一個動態代理,一類攔截方法調用並檢查它們的數據。在WCF的情況下,它使用MethodInfo和相關的屬性來發送呼叫作爲RPC通過任何協議和連接已建立。

請參閱RealProxy在.NET中的初學者,也考慮到有很多代理庫。

3

我不知道它是如何實現的。

但它指向編程中的一個通用問題 - 您想在運行時動態創建一個實現任何給定接口的對象。

在WCF的情況下,這個動態創建的對象會攔截任何調用,然後查看方法和參數的屬性以確定如何將其序列化爲SOAP或JSON消息。

我使用的動態代理的實現是Castle DynamicProxy。

http://www.castleproject.org/projects/dynamicproxy/