我在哪里可以找到RemotingServices.CreateTransparentProxy实现?

时间:2015-05-28 20:37:47

标签: c# wcf clr transparentproxy

我试图通过挖掘源代码来深入了解WCF ChannelFactory创建的透明代理的工作原理。 CreateTransparentProxy标有extern关键字和[MethodImplAttribute(MethodImplOptions.InternalCall)]属性,这意味着只要我理解,我必须在CLR中查看实现。在CLR source codes中,我发现在某些c#到c ++代码函数映射文件ecalllist.h中只需要提到一些我需要的函数。因此,实现必须位于名为RemotingNative的类中,但在存储库中搜索并不会给我任何结果。

我在github上发现了一些旧的SSCLI代码,其中包含similar method implementation但不完全相同。除此之外,我想看看实际的实施情况。

1 个答案:

答案 0 :(得分:2)

WCF前几天成为open sourced。到目前为止我发现的是WCF ServiceChannelProxy现在使用DispatchProxy.Create<T, TProxy>()而不是RemotingServices.CreateTransparentProxy()。所以看起来如果你想要实际的方法实现创建由WCF 使用的代理,而不是DispatchProxyDispatchProxyGenerator是您要查找的地方。如果你想要{em>实际实现RemotingServices.CreateTransparentProxy()而不是SSCLI代码可能是一个很好的近似,正如@ Christian.K所指出的那样。