换句话说,如何判断我是否有对TransparentProxy或本地对象的引用?
答案 0 :(得分:5)
答案 1 :(得分:0)
尝试这个有趣的小技巧:
bool fIsTransparentProxy = ((myTransparentObject as MarshalByRefObject) == null);
当我尝试将透明代理转换为MarshalByRefObject时,它返回null。我在VB中对此进行了测试,因为这是我所有代理所在的地方,但希望在C#中也能保持相同的行为。
另请注意,Visual Studio调试器知道哪个是哪个,但我无法弄清楚如何获取产生相同结果的代码(将鼠标悬停在VS中的TP对象上显示System.Runtime.Remoting.Proxies.__TransparentProxy
作为类类型,但是这是一个内部密封的课程。)