IMethodReturnMessage Interface

 

Defines the method call return message interface.

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

[ComVisibleAttribute(true)]
public interface class 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.

[System::Security::Permissions::SecurityPermissionAttribute
(System::Security::Permissions::SecurityAction::LinkDemand, 
Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)]
[System::Security::Permissions::SecurityPermissionAttribute
(System::Security::Permissions::SecurityAction::InheritanceDemand, 
Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)]
public ref class MyProxy: public RealProxy
{
private:
   String^ stringUri;
   MarshalByRefObject^ myMarshalByRefObject;

public:
   MyProxy( Type^ myType ) : RealProxy( myType )
   {
      myMarshalByRefObject = dynamic_cast<MarshalByRefObject^>(Activator::CreateInstance( myType ));
      ObjRef^ myObject = RemotingServices::Marshal( myMarshalByRefObject );
      stringUri = myObject->URI;
   }

   virtual IMessage^ Invoke( IMessage^ myMessage ) override
   {
      IMethodCallMessage^ myCallMessage = (IMethodCallMessage^)( myMessage );

      IMethodReturnMessage^ myIMethodReturnMessage =
         RemotingServices::ExecuteMessage( myMarshalByRefObject, myCallMessage );

      Console::WriteLine( "Method name : {0}", myIMethodReturnMessage->MethodName );
      Console::WriteLine( "The return value is : {0}", myIMethodReturnMessage->ReturnValue );

      // Get number of 'ref' and 'out' parameters.
      int myArgOutCount = myIMethodReturnMessage->OutArgCount;
      Console::WriteLine( "The number of 'ref', 'out' parameters are : {0}",
         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();
      array<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: