2017-02-16 7 views
0

Глядя на создание каналов явно в WCF, вы делаете это:Как ChannelFactory (WCF/C#) использует интерфейс как тип?

IService channel = new ChannelFactory<IService>(binding, address).CreateChannel(); 

Почему я позволил «тип» завод канала в качестве интерфейса? Я знаю, что интерфейс IService должен быть оформлен, чтобы это можно было сделать. что ChannelFactory делает за кулисами, чтобы это разрешить?

ответ

1

Внутри ChannelFactory<TChannel> создает объект типа ServiceChannelProxy, который вытекает из System.Runtime.Remoting.Proxies.RealProxy, что позволяет создать transparent proxy через интерфейс TChannel.

+0

Смешно, что WCF основан на удалении .net. Я этого не знал. –

+1

Несмотря на то, что удаленная передача .NET как распределенная технология мертва, большая часть ее инфраструктуры является абсолютно явной для .NET (включая все материалы AppDomain). Не уверен, сколько из этого уходит в ядре .NET. – tomasr