IMethodMessage.MethodName プロパティ
呼び出されたメソッドの名前を取得します。
ReadOnly Property MethodName As String
[C#]
string MethodName {get;}
[C++]
__property String* get_MethodName();
[JScript]
function get MethodName() : String;
プロパティ値
呼び出されたメソッドの名前。
例外
例外の種類 | 条件 |
---|---|
SecurityException | 直前の呼び出し元は、インターフェイスへの参照を通じて呼び出しを実行します。この呼び出し元には、インフラストラクチャ アクセス許可がありません。 |
使用例
[Visual Basic, C#, C++] RealProxy.Invoke をオーバーライドして、メソッドの名前をコンソールに書き込むカスタム プロキシについては、次のコード例を参照してください。
' Overriding the Invoke method of RealProxy.
Public Overrides Function Invoke(message As IMessage) As IMessage
Dim myMethodMessage As IMethodMessage = CType(message, IMethodMessage)
Console.WriteLine("**** Begin Invoke ****")
Console.WriteLine(ControlChars.Tab + "Type is : " + myType.ToString())
Console.WriteLine(ControlChars.Tab + "Method name : " + myMethodMessage.MethodName)
Dim i As Integer
For i = 0 To myMethodMessage.ArgCount - 1
Console.WriteLine(ControlChars.Tab + "ArgName is : " + myMethodMessage.GetArgName(i))
Console.WriteLine(ControlChars.Tab + "ArgValue is: " + myMethodMessage.GetArg(i))
Next i
If myMethodMessage.HasVarArgs Then
Console.WriteLine(ControlChars.Tab + " The method have variable arguments!!")
Else
Console.WriteLine(ControlChars.Tab + " The method does not have variable arguments!!")
End If
' Dispatch the method call to the real object.
Dim returnValue As Object = myType.InvokeMember(myMethodMessage.MethodName, _
BindingFlags.InvokeMethod, Nothing, myObjectInstance, myMethodMessage.Args)
Console.WriteLine("**** End Invoke ****")
' Build the return message to pass back to the transparent proxy.
Dim myReturnMessage As New ReturnMessage(returnValue, Nothing, 0, Nothing, _
CType(message, IMethodCallMessage))
Return myReturnMessage
End Function 'Invoke
[C#]
// Overriding the Invoke method of RealProxy.
public override IMessage Invoke(IMessage message)
{
IMethodMessage myMethodMessage = (IMethodMessage)message;
Console.WriteLine("**** Begin Invoke ****");
Console.WriteLine("\tType is : " + myType);
Console.WriteLine("\tMethod name : " + myMethodMessage.MethodName);
for (int i=0; i < myMethodMessage.ArgCount; i++)
{
Console.WriteLine("\tArgName is : " + myMethodMessage.GetArgName(i));
Console.WriteLine("\tArgValue is: " + myMethodMessage.GetArg(i));
}
if(myMethodMessage.HasVarArgs)
Console.WriteLine("\t The method have variable arguments!!");
else
Console.WriteLine("\t The method does not have variable arguments!!");
// Dispatch the method call to the real object.
Object returnValue = myType.InvokeMember( myMethodMessage.MethodName, BindingFlags.InvokeMethod, null,
myObjectInstance, myMethodMessage.Args );
Console.WriteLine("**** End Invoke ****");
// Build the return message to pass back to the transparent proxy.
ReturnMessage myReturnMessage = new ReturnMessage( returnValue, null, 0, null,
(IMethodCallMessage)message );
return myReturnMessage;
}
[C++]
// Overriding the Invoke method of RealProxy.
public:
IMessage* Invoke(IMessage* message)
{
IMethodMessage* myMethodMessage = dynamic_cast<IMethodMessage*>(message);
Console::WriteLine(S"**** Begin Invoke ****");
Console::WriteLine(S"\tType is : {0}", myType);
Console::WriteLine(S"\tMethod name : {0}", myMethodMessage->MethodName);
for (int i=0; i < myMethodMessage->ArgCount; i++)
{
Console::WriteLine(S"\tArgName is : {0}", myMethodMessage->GetArgName(i));
Console::WriteLine(S"\tArgValue is: {0}", myMethodMessage->GetArg(i));
}
if (myMethodMessage->HasVarArgs)
Console::WriteLine(S"\t The method have variable arguments!!");
else
Console::WriteLine(S"\t The method does not have variable arguments!!");
// Dispatch the method call to the real Object*.
Object* returnValue = myType->InvokeMember(myMethodMessage->MethodName, BindingFlags::InvokeMethod, 0,
myObjectInstance, myMethodMessage->Args);
Console::WriteLine(S"**** End Invoke ****");
// Build the return message to pass back to the transparent proxy.
ReturnMessage* myReturnMessage = new ReturnMessage(returnValue, 0, 0, 0,
dynamic_cast<IMethodCallMessage*>(message));
return myReturnMessage;
}
[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
参照
IMethodMessage インターフェイス | IMethodMessage メンバ | System.Runtime.Remoting.Messaging 名前空間