IMethodReturnMessage.OutArgCount Property     
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the number of arguments in the method call marked as ref or out parameters.
public:
 property int OutArgCount { int get(); };public int OutArgCount { get; }public int OutArgCount { [System.Security.SecurityCritical] get; }member this.OutArgCount : int[<get: System.Security.SecurityCritical>]
member this.OutArgCount : intPublic ReadOnly Property OutArgCount As IntegerProperty Value
The number of arguments in the method call marked as ref or out parameters.
- Attributes
Exceptions
The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
Examples
The following example code shows a custom proxy that overrides RealProxy.Invoke in order to write the return message information to the console.
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 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;
}
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