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 セキュリティ:
- SecurityPermission (インフラストラクチャ コードを操作するために必要なアクセス許可)要求値: SecurityAction.LinkDemand; アクセス許可値: SecurityPermissionFlag.Infrastructure
参照
IMethodReturnMessage インターフェイス | IMethodReturnMessage メンバ | System.Runtime.Remoting.Messaging 名前空間