RealProxy.Invoke Method
When overridden in a derived class, invokes the method that is specified in the provided IMessage on the remote object that is represented by the current instance.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- msg
- Type: System.Runtime.Remoting.Messaging.IMessage
A IMessage that contains a IDictionary of information about the method call.
Return Value
Type: System.Runtime.Remoting.Messaging.IMessageThe message returned by the invoked method, containing the return value and any out or ref parameters.
When the transparent proxy that is backed by the RealProxy is called, it delegates the calls to the Invoke method. The Invoke method transforms the message in the msg parameter into a IMethodCallMessage, and sends it to the remote object that is represented by the current instance of RealProxy.
The IMessage parameter provides a dictionary through the IMessage.Properties property. The dictionary contains name/value pairs of information about the method call, such as the name of the method called and its parameters.
public override IMessage Invoke(IMessage myMessage) { Console.WriteLine("MyProxy 'Invoke method' Called..."); if (myMessage is IMethodCallMessage) { Console.WriteLine("IMethodCallMessage"); } if (myMessage is IMethodReturnMessage) { Console.WriteLine("IMethodReturnMessage"); } if (myMessage is IConstructionCallMessage) { // Initialize a new instance of remote object IConstructionReturnMessage myIConstructionReturnMessage = this.InitializeServerObject((IConstructionCallMessage)myMessage); ConstructionResponse constructionResponse = new ConstructionResponse(null,(IMethodCallMessage) myMessage); return constructionResponse; } IDictionary myIDictionary = myMessage.Properties; IMessage returnMessage; myIDictionary["__Uri"] = myUri; // Synchronously dispatch messages to server. returnMessage = ChannelServices.SyncDispatchMessage(myMessage); // Pushing return value and OUT parameters back onto stack. IMethodReturnMessage myMethodReturnMessage = (IMethodReturnMessage)returnMessage; return returnMessage; }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.