public void method(MyAgileClass acobj) { // recebe um objecto agile context como argumento Context ctx = Thread.CurrentContext; Console.WriteLine("Ctx Bound Method: ContextID do objecto MyContextBoundClass: {0}", ctx.ContextID); Console.WriteLine("Ctx Bound Method: vai invocar o método no objecto Agile recebido como argumento"); Console.WriteLine("Resposta de AgClMeth:" + acobj.AgClMeth("ola")); }
static void Main(string[] args) { MyContextBoundClass myBound = new MyContextBoundClass(); MyAgileClass myAgile = new MyAgileClass(); // Em que contexto estão ? Console.WriteLine("mybound está fora do contexto corrente ? {0}", RemotingServices.IsObjectOutOfContext(myBound)); // True Console.WriteLine("myAgile está fora do contexto corrente ? {0}", RemotingServices.IsObjectOutOfContext(myAgile)); // False Console.WriteLine(); // São referência directa ou proxies ? Console.WriteLine("\nmyBound é um proxy? {0}", RemotingServices.IsTransparentProxy(myBound)); //True Console.WriteLine("myAgile é um proxy? {0}", RemotingServices.IsTransparentProxy(myAgile)); // False Console.WriteLine(); string str = myAgile.AgClMeth("ole"); Console.WriteLine("Resposta de AgClMeth:"+str); myBound.method(myAgile); }