IMethodReturnMessage Interface

 

Defines the method call return message interface.

Namespace:   System.Runtime.Remoting.Messaging
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public interface IMethodReturnMessage : IMethodMessage, IMessage

NameDescription
System_CAPS_pubpropertyArgCount

Gets the number of arguments passed to the method.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyArgs

Gets an array of arguments passed to the method.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyException

Gets the exception thrown during the method call.

System_CAPS_pubpropertyHasVarArgs

Gets a value indicating whether the message has variable arguments.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyLogicalCallContext

Gets the LogicalCallContext for the current method call.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyMethodBase

Gets the MethodBase of the called method.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyMethodName

Gets the name of the invoked method.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyMethodSignature

Gets an object containing the method signature.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyOutArgCount

Gets the number of arguments in the method call marked as ref or out parameters.

System_CAPS_pubpropertyOutArgs

Returns the specified argument marked as a ref or an out parameter.

System_CAPS_pubpropertyProperties

Gets an IDictionary that represents a collection of the message's properties.(Inherited from IMessage.)

System_CAPS_pubpropertyReturnValue

Gets the return value of the method call.

System_CAPS_pubpropertyTypeName

Gets the full Type name of the specific object that the call is destined for.(Inherited from IMethodMessage.)

System_CAPS_pubpropertyUri

Gets the URI of the specific object that the call is destined for.(Inherited from IMethodMessage.)

NameDescription
System_CAPS_pubmethodGetArg(Int32)

Gets a specific argument as an Object.(Inherited from IMethodMessage.)

System_CAPS_pubmethodGetArgName(Int32)

Gets the name of the argument passed to the method.(Inherited from IMethodMessage.)

System_CAPS_pubmethodGetOutArg(Int32)

Returns the specified argument marked as a ref or an out parameter.

System_CAPS_pubmethodGetOutArgName(Int32)

Returns the name of the specified argument marked as a ref or an out parameter.

A method call return message represents the response to a method call on an object at the end of the message sink. An IMethodReturnMessage is generated as a result of a method called on a remote object, and is used to return the results of the method call back to the caller.

The following example code shows a custom proxy that overrides RealProxy.Invoke in order to write the return message information to the console.

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public class MyProxy : RealProxy
{
   String stringUri;
   MarshalByRefObject myMarshalByRefObject;

   public MyProxy(Type myType): base(myType)
   {
      myMarshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(myType);
      ObjRef myObject = RemotingServices.Marshal(myMarshalByRefObject);
      stringUri = myObject.URI;
   }

   public override IMessage Invoke(IMessage myMessage)
   {
      IMethodCallMessage myCallMessage = (IMethodCallMessage)myMessage;

      IMethodReturnMessage myIMethodReturnMessage =
         RemotingServices.ExecuteMessage(myMarshalByRefObject, myCallMessage);

      Console.WriteLine("Method name : " + myIMethodReturnMessage.MethodName);
      Console.WriteLine("The return value is : " + myIMethodReturnMessage.ReturnValue);

      // Get number of 'ref' and 'out' parameters.
      int myArgOutCount = myIMethodReturnMessage.OutArgCount;
      Console.WriteLine("The number of 'ref', 'out' parameters are : " +
         myIMethodReturnMessage.OutArgCount);
      // Gets name and values of 'ref' and 'out' parameters.
      for(int i = 0; i < myArgOutCount; i++)
      {
         Console.WriteLine("Name of argument {0} is '{1}'.",
            i, myIMethodReturnMessage.GetOutArgName(i));
         Console.WriteLine("Value of argument {0} is '{1}'.",
            i, myIMethodReturnMessage.GetOutArg(i));
      }
      Console.WriteLine();
      object[] myObjectArray = myIMethodReturnMessage.OutArgs; 
      for(int i = 0; i < myObjectArray.Length; i++)
         Console.WriteLine("Value of argument {0} is '{1}' in OutArgs",
            i, myObjectArray[i]);
      return myIMethodReturnMessage;
   }
}

.NET Framework
Available since 1.1
Return to top
Show: