IMethodReturnMessage.OutArgs プロパティ

ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数を返します。

ReadOnly Property OutArgs As Object ()
[C#]
object[] OutArgs {get;}
[C++]
__property Object* get_OutArgs();
[JScript]
function get OutArgs() : Object[];

プロパティ値

ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数。

例外

例外の種類 条件
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

[C#] 
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;
}

[C++] 
public:
    IMessage* Invoke(IMessage* myMessage) 
    {
        IMethodCallMessage* myCallMessage = dynamic_cast<IMethodCallMessage*>(myMessage);

        IMethodReturnMessage* myIMethodReturnMessage =
            RemotingServices::ExecuteMessage(myMarshalByRefObject, myCallMessage);

        Console::WriteLine(S"Method name : {0}", myIMethodReturnMessage->MethodName);
        Console::WriteLine(S"The return value is : {0}", myIMethodReturnMessage->ReturnValue);

        // Get number of 'ref' and 'out' parameters.
        int myArgOutCount = myIMethodReturnMessage->OutArgCount;
        Console::WriteLine(S"The number of 'ref', 'out' parameters are : {0}", __box(myIMethodReturnMessage->OutArgCount));
        // Gets name and values of 'ref' and 'out' parameters.
        for (int i = 0; i < myArgOutCount; i++) {
            Console::WriteLine(S"Name of argument {0} is ' {1}'.",
                __box(i), myIMethodReturnMessage->GetOutArgName(i));
            Console::WriteLine(S"Value of argument {0} is ' {1}'.",
                __box(i), myIMethodReturnMessage->GetOutArg(i));
        }
        Console::WriteLine();
        Object* myObjectArray[] = myIMethodReturnMessage->OutArgs; 
        for (int i = 0; i < myObjectArray->Length; i++)
            Console::WriteLine(S"Value of argument {0} is ' {1}' in OutArgs",
            __box(i), myObjectArray[i]);
        return myIMethodReturnMessage;
    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

IMethodReturnMessage インターフェイス | IMethodReturnMessage メンバ | System.Runtime.Remoting.Messaging 名前空間