IMethodReturnMessage Interface
Defines the method call return message interface.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() | 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.) |
| Name | Description | |
|---|---|---|
![]() | 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. |
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; } };
Available since 1.1

