IMethodReturnMessage Interfaz

Definición

Define la interfaz de mensajes devueltos de llamada de métodos.Defines the method call return message interface.

public interface class IMethodReturnMessage : System::Runtime::Remoting::Messaging::IMethodMessage
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMethodReturnMessage : System.Runtime.Remoting.Messaging.IMethodMessage
type IMethodReturnMessage = interface
    interface IMethodMessage
    interface IMessage
Public Interface IMethodReturnMessage
Implements IMethodMessage
Derivado
Atributos
Implementaciones

Ejemplos

RealProxy.Invoke En el ejemplo de código siguiente se muestra un proxy personalizado que invalida para escribir la información del mensaje devuelto en la consola.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;
   }
};
[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;
   }
}
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
Public Class MyProxy
   Inherits RealProxy
   Private stringUri As String
   Private myMarshalByRefObject As MarshalByRefObject
   
   Public Sub New(myType As Type)
      MyBase.New(myType)
      myMarshalByRefObject = CType(Activator.CreateInstance(myType), MarshalByRefObject)
      Dim myObject As ObjRef = RemotingServices.Marshal(myMarshalByRefObject)
      stringUri = myObject.URI
   End Sub
   
   Public Overrides Function Invoke(myMessage As IMessage) As IMessage
      Dim myCallMessage As IMethodCallMessage = CType(myMessage, IMethodCallMessage)

      Dim myIMethodReturnMessage As IMethodReturnMessage = 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.
      Dim myArgOutCount As Integer = myIMethodReturnMessage.OutArgCount
      Console.WriteLine("The number of 'ref', 'out' parameters are : " + _
         myIMethodReturnMessage.OutArgCount.ToString())
      ' Gets name and values of 'ref' and 'out' parameters.
      Dim i As Integer
      For i = 0 To myArgOutCount - 1
         Console.WriteLine("Name of argument {0} is '{1}'.", i, _
            myIMethodReturnMessage.GetOutArgName(i))
         Console.WriteLine("Value of argument {0} is '{1}'.", i, _
            myIMethodReturnMessage.GetOutArg(i))
      Next i
      Console.WriteLine()
      Dim myObjectArray As Object() = myIMethodReturnMessage.OutArgs
      For i = 0 To myObjectArray.Length - 1
         Console.WriteLine("Value of argument {0} is '{1}' in OutArgs", i, myObjectArray(i))
      Next i
      Return myIMethodReturnMessage
   End Function 'Invoke
End Class

Comentarios

Un mensaje devuelto por una llamada al método representa la respuesta a una llamada al método en un objeto al final del receptor del mensaje.A method call return message represents the response to a method call on an object at the end of the message sink. IMethodReturnMessage Se genera como resultado de un método denominado en un objeto remoto y se utiliza para devolver los resultados de la llamada al método al llamador.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.

Propiedades

ArgCount

Obtiene el número de argumentos pasados al método.Gets the number of arguments passed to the method.

(Heredado de IMethodMessage)
Args

Obtiene la matriz de argumentos pasados al método.Gets an array of arguments passed to the method.

(Heredado de IMethodMessage)
Exception

Obtiene la excepción producida durante la llamada de método.Gets the exception thrown during the method call.

HasVarArgs

Obtiene un valor que indica si el mensaje contiene argumentos de variable.Gets a value indicating whether the message has variable arguments.

(Heredado de IMethodMessage)
LogicalCallContext

Obtiene el valor de LogicalCallContext para la llamada de método actual.Gets the LogicalCallContext for the current method call.

(Heredado de IMethodMessage)
MethodBase

Obtiene el objeto MethodBase del método invocado.Gets the MethodBase of the called method.

(Heredado de IMethodMessage)
MethodName

Obtiene el nombre del método invocado.Gets the name of the invoked method.

(Heredado de IMethodMessage)
MethodSignature

Obtiene un objeto que contiene la firma del método.Gets an object containing the method signature.

(Heredado de IMethodMessage)
OutArgCount

Obtiene el número de argumentos de la llamada de método que están marcados como parámetros ref o out.Gets the number of arguments in the method call marked as ref or out parameters.

OutArgs

Devuelve el argumento especificado que está marcado como un parámetro ref o out.Returns the specified argument marked as a ref or an out parameter.

Properties

Obtiene una IDictionary que representa una colección de propiedades de los mensajes.Gets an IDictionary that represents a collection of the message's properties.

(Heredado de IMessage)
ReturnValue

Obtiene el valor devuelto de la llamada de método.Gets the return value of the method call.

TypeName

Obtiene el nombre completo de Type del objeto específico al que se destina la llamada.Gets the full Type name of the specific object that the call is destined for.

(Heredado de IMethodMessage)
Uri

Obtiene la dirección URI del objeto específico al que se destina la llamada.Gets the URI of the specific object that the call is destined for.

(Heredado de IMethodMessage)

Métodos

GetArg(Int32)

Obtiene un argumento específico como un Object.Gets a specific argument as an Object.

(Heredado de IMethodMessage)
GetArgName(Int32)

Obtiene el nombre del argumento pasado al método.Gets the name of the argument passed to the method.

(Heredado de IMethodMessage)
GetOutArg(Int32)

Devuelve el argumento especificado que está marcado como un parámetro ref o out.Returns the specified argument marked as a ref or an out parameter.

GetOutArgName(Int32)

Devuelve el nombre del argumento especificado que está marcado como un parámetro ref o out.Returns the name of the specified argument marked as a ref or an out parameter.

Se aplica a