IMethodReturnMessage Interface

Definition

Defines the method call return message interface.

C#
public interface IMethodReturnMessage : System.Runtime.Remoting.Messaging.IMethodMessage
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMethodReturnMessage : System.Runtime.Remoting.Messaging.IMethodMessage
Derived
Attributes
Implements

Examples

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

C#
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;
   }
}

Remarks

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.

Properties

ArgCount

Gets the number of arguments passed to the method.

(Inherited from IMethodMessage)
Args

Gets an array of arguments passed to the method.

(Inherited from IMethodMessage)
Exception

Gets the exception thrown during the method call.

HasVarArgs

Gets a value indicating whether the message has variable arguments.

(Inherited from IMethodMessage)
LogicalCallContext

Gets the LogicalCallContext for the current method call.

(Inherited from IMethodMessage)
MethodBase

Gets the MethodBase of the called method.

(Inherited from IMethodMessage)
MethodName

Gets the name of the invoked method.

(Inherited from IMethodMessage)
MethodSignature

Gets an object containing the method signature.

(Inherited from IMethodMessage)
OutArgCount

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

OutArgs

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

Properties

Gets an IDictionary that represents a collection of the message's properties.

(Inherited from IMessage)
ReturnValue

Gets the return value of the method call.

TypeName

Gets the full Type name of the specific object that the call is destined for.

(Inherited from IMethodMessage)
Uri

Gets the URI of the specific object that the call is destined for.

(Inherited from IMethodMessage)

Methods

GetArg(Int32)

Gets a specific argument as an Object.

(Inherited from IMethodMessage)
GetArgName(Int32)

Gets the name of the argument passed to the method.

(Inherited from IMethodMessage)
GetOutArg(Int32)

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

GetOutArgName(Int32)

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

Applies to

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1