我在哪里可以找到RemotingServices.CreateTransparentProxy实现
本文关键字:RemotingServices CreateTransparentProxy 实现 在哪里 | 更新日期: 2023-09-27 17:51:00
我试图通过挖掘源代码来了解WCF ChannelFactory创建的透明代理是如何工作的。CreateTransparentProxy由extern
关键字和[MethodImplAttribute(MethodImplOptions.InternalCall)]
属性标记,这意味着我必须在CLR内查看实现,只要我的理解去。在CLR源代码中,我只发现了一个我需要在c#到c++代码中的函数映射文件ecalllist.h中提到的函数。所以实现必须躺在类称为RemotingNative
,但搜索库内没有给我任何结果。
我在github上发现了一些旧的SSCLI代码,其中包含类似的方法实现,但不完全相同。除此之外,我还想看看实际的实现
前几天WCF成为开源的。到目前为止,我发现的是WCF ServiceChannelProxy
现在使用DispatchProxy.Create<T, TProxy>()
而不是RemotingServices.CreateTransparentProxy()
.
所以看起来如果你想实际实现创建WCF使用的代理的方法,比DispatchProxy和DispatchProxyGenerator是你寻找的地方。如果您希望实际实现RemotingServices.CreateTransparentProxy()
,那么SSCLI代码可能是@Christian的一个很好的近似。