Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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: