IMethodReturnMessage インターフェイス
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(True)> _ Public Interface IMethodReturnMessage Inherits IMethodMessage, IMessage

メソッド呼び出しの応答メッセージは、メッセージ シンク側における、オブジェクトに対するメソッド呼び出しへの応答を表します。IMethodReturnMessage は、リモート オブジェクトに対して呼び出されたメソッドの結果として生成され、そのメソッド呼び出しの結果を呼び出し元に返すために使用されます。

RealProxy.Invoke をオーバーライドして、返されたメッセージの情報をコンソールに書き込むカスタム プロキシについては、次のコード例を参照してください。
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _ Public Class MyProxy Inherits RealProxy Private stringUri As String Private myMarshalByRefObject As MarshalByRefObject Public Sub New(myType As Type) MyBase.New(myType) myMarshalByRefObject = CType(Activator.CreateInstance(myType), MarshalByRefObject) Dim myObject As ObjRef = RemotingServices.Marshal(myMarshalByRefObject) stringUri = myObject.URI End Sub 'New 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 End Class 'MyProxy
[PermissionSet(SecurityAction.Demand, Name="FullTrust")] public class MyProxy : RealProxy { String stringUri; MarshalByRefObject myMarshalByRefObject; public MyProxy(Type myType): base(myType) { myMarshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(myType); ObjRef myObject = RemotingServices.Marshal(myMarshalByRefObject); stringUri = myObject.URI; } 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; } }
[System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::LinkDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] [System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::InheritanceDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] public ref class MyProxy: public RealProxy { private: String^ stringUri; MarshalByRefObject^ myMarshalByRefObject; public: MyProxy( Type^ myType ) : RealProxy( myType ) { myMarshalByRefObject = dynamic_cast<MarshalByRefObject^>(Activator::CreateInstance( myType )); ObjRef^ myObject = RemotingServices::Marshal( myMarshalByRefObject ); stringUri = myObject->URI; } 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; } };
/** @attribute SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure) */ public class MyProxy extends RealProxy { private String stringUri; private MarshalByRefObject myMarshalByRefObject; public MyProxy(Type myType) { super(myType); myMarshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(myType); ObjRef myObject = RemotingServices.Marshal(myMarshalByRefObject); stringUri = myObject.get_URI(); } //MyProxy 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 } //MyProxy

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IMethodReturnMessage プロパティ

名前 | 説明 | |
---|---|---|
![]() | Exception | メソッドの呼び出し中にスローされた例外を取得します。 |
![]() | OutArgCount | メソッドの呼び出しの引数のうち、ref パラメータまたは out パラメータとしてマークされた引数の数を取得します。 |
![]() | OutArgs | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数を返します。 |
![]() | ReturnValue | メソッド呼び出しの戻り値を取得します。 |

IMethodReturnMessage メソッド

名前 | 説明 | |
---|---|---|
![]() | GetOutArg | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数を返します。 |
![]() | GetOutArgName | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数の名前を返します。 |

IMethodReturnMessage メンバ
メソッド呼び出しの応答メッセージのインターフェイスを定義します。
IMethodReturnMessage データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | Exception | メソッドの呼び出し中にスローされた例外を取得します。 |
![]() | OutArgCount | メソッドの呼び出しの引数のうち、ref パラメータまたは out パラメータとしてマークされた引数の数を取得します。 |
![]() | OutArgs | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数を返します。 |
![]() | ReturnValue | メソッド呼び出しの戻り値を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | GetOutArg | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数を返します。 |
![]() | GetOutArgName | ref パラメータまたは out パラメータとしてマークされた引数のうち、指定された引数の名前を返します。 |

- IMethodReturnMessageのページへのリンク