IMethodReturnMessage.OutArgs 属性

返回标记为 refout 参数的指定参数。

**命名空间:**System.Runtime.Remoting.Messaging
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
ReadOnly Property OutArgs As Object()
用法
Dim instance As IMethodReturnMessage
Dim value As Object()

value = instance.OutArgs
Object[] OutArgs { get; }
property array<Object^>^ OutArgs {
    array<Object^>^ get ();
}
/** @property */
Object[] get_OutArgs ()
function get OutArgs () : Object[]

属性值

标记为 refout 参数的指定参数。

异常

异常类型 条件

SecurityException

直接调用方通过接口引用进行调用,它没有基础结构权限。

备注

虽然 OutArgs 属性是多余的(因为可以通过 OutArgCount 字段和 GetOutArg 方法达到相同的功能),但如果实施者理解何时检索所有参数,则可能获得性能优化。

示例

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 安全性

平台

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 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

IMethodReturnMessage 接口
IMethodReturnMessage 成员
System.Runtime.Remoting.Messaging 命名空间