Freigeben über


IMethodReturnMessage Schnittstelle

Definition

Definiert die Rückgabemeldungsschnittstelle für Methodenaufrufe.

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
Abgeleitet
Attribute
Implementiert

Beispiele

Der folgende Beispielcode zeigt einen benutzerdefinierten Proxy, der überschreibt RealProxy.Invoke , um die Rückgabenachrichteninformationen in die Konsole zu schreiben.

[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

Hinweise

Eine Methodenaufrufrückmeldung stellt die Antwort auf einen Methodenaufruf für ein Objekt am Ende der Nachrichtensenke dar. Ein IMethodReturnMessage wird als Ergebnis einer Methode generiert, die für ein Remoteobjekt aufgerufen wird, und wird verwendet, um die Ergebnisse des Methodenaufrufs an den Aufrufer zurückzugeben.

Eigenschaften

ArgCount

Ruft die Anzahl von Argumenten ab, die an die Methode übergeben werden.

(Geerbt von IMethodMessage)
Args

Ruft ein Array von Argumenten ab, die an die Methode übergeben werden.

(Geerbt von IMethodMessage)
Exception

Ruft die Ausnahme ab, die während des Methodenaufrufs ausgelöst wurde.

HasVarArgs

Ruft einen Wert ab, der angibt, ob die Meldung variable Argumente besitzt.

(Geerbt von IMethodMessage)
LogicalCallContext

Ruft den LogicalCallContext für den aktuellen Methodenaufruf ab.

(Geerbt von IMethodMessage)
MethodBase

Ruft den MethodBase der aufgerufenen Methode ab.

(Geerbt von IMethodMessage)
MethodName

Ruft den Namen der aufgerufenen Methode ab.

(Geerbt von IMethodMessage)
MethodSignature

Ruft ein Objekt ab, das die Methodensignatur enthält.

(Geerbt von IMethodMessage)
OutArgCount

Ruft die Anzahl der Argumente im Methodenaufruf ab, die als ref-Parameter oder out-Parameter gekennzeichnet sind.

OutArgs

Gibt das angegebene Argument zurück, das als ref-Parameter oder out-Parameter gekennzeichnet ist.

Properties

Ruft ein IDictionary ab, das eine Auflistung der Meldungseigenschaften darstellt.

(Geerbt von IMessage)
ReturnValue

Ruft den Rückgabewert des Methodenaufrufs ab.

TypeName

Ruft den vollständigen Type-Namen des Objekts ab, für das der Aufruf bestimmt ist.

(Geerbt von IMethodMessage)
Uri

Ruft den URI des bestimmten Objekts ab, für das der Aufruf bestimmt ist.

(Geerbt von IMethodMessage)

Methoden

GetArg(Int32)

Ruft ein bestimmtes Argument als Object ab.

(Geerbt von IMethodMessage)
GetArgName(Int32)

Ruft den Namen des Arguments ab, das an die Methode übergeben wird.

(Geerbt von IMethodMessage)
GetOutArg(Int32)

Gibt das angegebene Argument zurück, das als ref-Parameter oder out-Parameter gekennzeichnet ist.

GetOutArgName(Int32)

Gibt den Namen des angegebenen Arguments zurück, das als ref-Parameter oder out-Parameter gekennzeichnet ist.

Gilt für: