IMethodReturnMessage Interface

Definitie

Hiermee definieert u de retourberichtinterface van de methode-aanroep.

public interface class IMethodReturnMessage : System::Runtime::Remoting::Messaging::IMethodMessage
public interface 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
[<System.Runtime.InteropServices.ComVisible(true)>]
type IMethodReturnMessage = interface
    interface IMethodMessage
    interface IMessage
Public Interface IMethodReturnMessage
Implements IMethodMessage
Afgeleid
Kenmerken
Implementeringen

Voorbeelden

In de volgende voorbeeldcode ziet u een aangepaste proxy die wordt overschreven RealProxy.Invoke om de retourberichtgegevens naar de console te schrijven.

[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;
   }
};
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

Opmerkingen

Een retourbericht van een methodeaanroep vertegenwoordigt het antwoord op een methodeaanroep op een object aan het einde van de berichtsink. Er IMethodReturnMessage wordt een gegenereerd als gevolg van een methode die wordt aangeroepen op een extern object en wordt gebruikt om de resultaten van de methodeaanroep terug te sturen naar de aanroeper.

Eigenschappen

Name Description
ArgCount

Hiermee haalt u het aantal argumenten op dat aan de methode is doorgegeven.

(Overgenomen van IMethodMessage)
Args

Hiermee haalt u een matrix van argumenten op die aan de methode zijn doorgegeven.

(Overgenomen van IMethodMessage)
Exception

Hiermee wordt de uitzondering gegenereerd tijdens de methode-aanroep.

HasVarArgs

Hiermee wordt een waarde opgehaald die aangeeft of het bericht variabele argumenten heeft.

(Overgenomen van IMethodMessage)
LogicalCallContext

Hiermee haalt u de LogicalCallContext aanroep voor de huidige methode op.

(Overgenomen van IMethodMessage)
MethodBase

Hiermee haalt u de MethodBase aangeroepen methode op.

(Overgenomen van IMethodMessage)
MethodName

Hiermee haalt u de naam van de aangeroepen methode op.

(Overgenomen van IMethodMessage)
MethodSignature

Hiermee haalt u een object op met de methodehandtekening.

(Overgenomen van IMethodMessage)
OutArgCount

Hiermee haalt u het aantal argumenten op in de methode-aanroep die is gemarkeerd als ref of out parameters.

OutArgs

Retourneert het opgegeven argument dat is gemarkeerd als een ref of een out parameter.

Properties

Hiermee haalt u een IDictionary op die een verzameling eigenschappen van het bericht vertegenwoordigt.

(Overgenomen van IMessage)
ReturnValue

Hiermee wordt de retourwaarde van de methode-aanroep opgehaald.

TypeName

Hiermee haalt u de volledige Type naam op van het specifieke object waarvoor de aanroep is bestemd.

(Overgenomen van IMethodMessage)
Uri

Hiermee haalt u de URI op van het specifieke object waarvoor de aanroep is bestemd.

(Overgenomen van IMethodMessage)

Methoden

Name Description
GetArg(Int32)

Hiermee haalt u een specifiek argument op als een Object.

(Overgenomen van IMethodMessage)
GetArgName(Int32)

Hiermee haalt u de naam op van het argument dat aan de methode is doorgegeven.

(Overgenomen van IMethodMessage)
GetOutArg(Int32)

Retourneert het opgegeven argument dat is gemarkeerd als een ref of een out parameter.

GetOutArgName(Int32)

Retourneert de naam van het opgegeven argument dat is gemarkeerd als een ref of een out parameter.

Van toepassing op