【问题标题】:Remoting - Is an object remote?远程处理 - 对象是远程的吗?
【发布时间】:2009-11-02 20:32:34
【问题描述】:

如何确定对象是本地对象还是远程对象(使用 C# 远程处理)?如果对象是远程的,则检查本地代码,或者如果从远程执行代码,则检查对象中的代码都可以。

【问题讨论】:

    标签: c# remoting


    【解决方案1】:
        if(System.Runtime.Remoting.RemotingServices.IsTransparentProxy(myObject))
          Console.WriteLine("Yay - my object is a remoted object.");
        else
          Console.WriteLine("Boo - my object is not a remoted object.");
    

    MSDN Docs on IsTransparentProxy

    【讨论】:

    • 我投了这个答案,因为它提供了有关特定 FCL 方法的 MSDN 文档链接,我希望看到引用的框架创建者的想法。可能存在其他选项,但 Microsoft 明确提供了此方法。
    【解决方案2】:

    我想你可以看看代理,看看它是否源自TransparentProxy

    var myObj = ....;
    if(myObj is TransparentProxy) 
      Console.WriteLine("I have a remote object");
    else 
      Console.WriteLine("I don't think I have a remote object");
    

    【讨论】:

    • 你能告诉我更多关于如何做到这一点的细节吗? TransparentProxy 似乎是一个内部类,而且非常透明
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    相关资源
    最近更新 更多