2009-11-02 6 views
1

Comment puis-je déterminer si un objet est local ou distant (à l'aide de l'accès à distance C#)? Les deux vérifiant dans le code local si l'objet est distant ou dans l'objet si le code est exécuté à distance serait correct.Remoting - Un objet est-il distant?

Répondre

4
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

+0

J'ai voté pour cette réponse car elle fournit le lien de documentation MSDN à propos d'une méthode FCL spécifique, et j'aime voir les pensées des créateurs référencés. D'autres options peuvent exister mais Microsoft a explicitement adapté cette méthode. –

0

Je suppose que vous pouvez regarder le proxy et voir si elle dérive de 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"); 
+0

Pourriez-vous me dire quelques détails sur la façon de le faire? TransparentProxy semble être une classe interne et, bien, très * transparente *. – eWolf