Freigeben über


IMethodReturnMessage.OutArgCount-Eigenschaft

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

Namespace: System.Runtime.Remoting.Messaging
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
ReadOnly Property OutArgCount As Integer
'Usage
Dim instance As IMethodReturnMessage
Dim value As Integer

value = instance.OutArgCount
int OutArgCount { get; }
property int OutArgCount {
    int get ();
}
/** @property */
int get_OutArgCount ()
function get OutArgCount () : int

Eigenschaftenwert

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

Ausnahmen

Ausnahmetyp Bedingung

SecurityException

Der direkte Aufrufer führt den Aufruf über einen Verweis auf die Schnittstelle aus und verfügt nicht über die Berechtigung für die Infrastruktur.

Beispiel

Im folgenden Beispielcode wird ein benutzerdefinierter Proxy veranschaulicht, der RealProxy.Invoke überschreibt, um die zurückgegebenen Meldungsinformationen auf der Konsole auszugeben.

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
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;
}
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 IMessage Invoke(IMessage myMessage)
{
    IMethodCallMessage myCallMessage = (IMethodCallMessage)myMessage;
    IMethodReturnMessage myIMethodReturnMessage 
        = RemotingServices.ExecuteMessage(myMarshalByRefObject,
            myCallMessage);
    Console.WriteLine("Method name : " 
        + myIMethodReturnMessage.get_MethodName());
    Console.WriteLine("The return value is : " 
        + myIMethodReturnMessage.get_ReturnValue());

    // Get number of 'ref' and 'out' parameters.
    int myArgOutCount = myIMethodReturnMessage.get_OutArgCount();

    Console.WriteLine("The number of 'ref', 'out' parameters are : " 
        + myIMethodReturnMessage.get_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}'.",
            System.Convert.ToString(i),
            myIMethodReturnMessage.GetOutArgName(i));
        Console.WriteLine("Value of argument {0} is '{1}'.",
            System.Convert.ToString(i),
            myIMethodReturnMessage.GetOutArg(i));
    }
    Console.WriteLine();
    Object myObjectArray[] = myIMethodReturnMessage.get_OutArgs();

    for (int i = 0; i < myObjectArray.length; i++) {
        Console.WriteLine("Value of argument {0} is '{1}' in OutArgs",
            System.Convert.ToString(i), myObjectArray.get_Item(i));
    }

    return myIMethodReturnMessage;
} //Invoke

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

IMethodReturnMessage-Schnittstelle
IMethodReturnMessage-Member
System.Runtime.Remoting.Messaging-Namespace