2

换句话说,我如何判断我是否引用了透明代理或本地对象?

4

2 回答 2

5

查看RemotingServices中的IsTransparentProxy方法。

于 2012-01-19T23:09:51.427 回答
0

试试这个有趣的小技巧:

bool fIsTransparentProxy = ((myTransparentObject as MarshalByRefObject) == null);

当我尝试将透明代理转换为 MarshalByRefObject 时,它返回 null。我在 VB 中对此进行了测试,因为那是我所有的代理所在的地方,但希望在 C# 中同样的行为也适用。

另请注意,Visual Studio 调试器知道哪个是哪个,但我不知道如何获取产生相同结果的代码(将鼠标悬停在 VS 中的 TP 对象上显示System.Runtime.Remoting.Proxies.__TransparentProxy为类类型,但这是一个内部密封类)。

于 2012-01-11T02:27:38.243 回答