IMethodReturnMessage IMethodReturnMessage IMethodReturnMessage IMethodReturnMessage Interface

Definição

Define a interface de mensagem de retorno da chamada do método.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
Implementações

Exemplos

O código de exemplo a seguir mostra um proxy personalizado RealProxy.Invoke que substitui para gravar as informações da mensagem de retorno no console.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 'New
   
   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 'MyProxy

Comentários

Uma mensagem de retorno de chamada de método representa a resposta a uma chamada de método em um objeto no final do coletor de mensagens.A method call return message represents the response to a method call on an object at the end of the message sink. Um IMethodReturnMessage é gerado como resultado de um método chamado em um objeto remoto e é usado para retornar os resultados da chamada do método de volta para o chamador.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.

Propriedades

ArgCount ArgCount ArgCount ArgCount

Obtém o número de argumentos passados ao método.Gets the number of arguments passed to the method.

(Inherited from IMethodMessage)
Args Args Args Args

Obtém uma matriz de argumentos passados ao método.Gets an array of arguments passed to the method.

(Inherited from IMethodMessage)
Exception Exception Exception Exception

Obtém a exceção gerada durante a chamada do método.Gets the exception thrown during the method call.

HasVarArgs HasVarArgs HasVarArgs HasVarArgs

Obtém um valor que indica se a mensagem tem argumentos variáveis.Gets a value indicating whether the message has variable arguments.

(Inherited from IMethodMessage)
LogicalCallContext LogicalCallContext LogicalCallContext LogicalCallContext

Obtém o LogicalCallContext da chamada de método atual.Gets the LogicalCallContext for the current method call.

(Inherited from IMethodMessage)
MethodBase MethodBase MethodBase MethodBase

Obtém a MethodBase do método chamado.Gets the MethodBase of the called method.

(Inherited from IMethodMessage)
MethodName MethodName MethodName MethodName

Obtém o nome do método invocado.Gets the name of the invoked method.

(Inherited from IMethodMessage)
MethodSignature MethodSignature MethodSignature MethodSignature

Obtém um objeto que contém a assinatura do método.Gets an object containing the method signature.

(Inherited from IMethodMessage)
OutArgCount OutArgCount OutArgCount OutArgCount

Obtém o número de argumentos na chamada do método marcados como parâmetros ref ou out.Gets the number of arguments in the method call marked as ref or out parameters.

OutArgs OutArgs OutArgs OutArgs

Retorna o argumento especificado marcado como um parâmetro ref ou out.Returns the specified argument marked as a ref or an out parameter.

Properties Properties Properties Properties

Obtém um IDictionary que representa uma coleção das propriedades da mensagem.Gets an IDictionary that represents a collection of the message's properties.

(Inherited from IMessage)
ReturnValue ReturnValue ReturnValue ReturnValue

Obtém o valor retornado de chamada de método.Gets the return value of the method call.

TypeName TypeName TypeName TypeName

Obtém o nome Type completo do objeto específico ao qual a chamada se destina.Gets the full Type name of the specific object that the call is destined for.

(Inherited from IMethodMessage)
Uri Uri Uri Uri

Obtém o URI do objeto específico ao qual a chamada se destina.Gets the URI of the specific object that the call is destined for.

(Inherited from IMethodMessage)

Métodos

GetArg(Int32) GetArg(Int32) GetArg(Int32) GetArg(Int32)

Obtém um argumento específico como um Object.Gets a specific argument as an Object.

(Inherited from IMethodMessage)
GetArgName(Int32) GetArgName(Int32) GetArgName(Int32) GetArgName(Int32)

Obtém o nome do argumento passado ao método.Gets the name of the argument passed to the method.

(Inherited from IMethodMessage)
GetOutArg(Int32) GetOutArg(Int32) GetOutArg(Int32) GetOutArg(Int32)

Retorna o argumento especificado marcado como um parâmetro ref ou out.Returns the specified argument marked as a ref or an out parameter.

GetOutArgName(Int32) GetOutArgName(Int32) GetOutArgName(Int32) GetOutArgName(Int32)

Retorna o nome do argumento especificado marcado como um parâmetro ref ou out.Returns the name of the specified argument marked as a ref or an out parameter.

Aplica-se a