Type.GetMethod メソッド (String, BindingFlags)
指定したバインディング制約を使用して、指定したメソッドを検索します。
Overloads Public Overridable Function GetMethod( _
ByVal name As String, _ ByVal bindingAttr As BindingFlags _) As MethodInfo Implements IReflect.GetMethod
[C#]
public virtual MethodInfo GetMethod(stringname,BindingFlagsbindingAttr);
[C++]
public: virtual MethodInfo* GetMethod(String* name,BindingFlagsbindingAttr);
[JScript]
public function GetMethod(
name : String,bindingAttr : BindingFlags) : MethodInfo;
パラメータ
name
取得するメソッドの名前を格納している String 。bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。または
null 参照 (Visual Basic では Nothing) を返す 0。
戻り値
指定した要件と一致するメソッドが存在する場合は、そのメソッドを表す MethodInfo オブジェクト。それ以外の場合は null 参照 (Visual Basic では Nothing) 。
実装
例外
例外の種類 | 条件 |
---|---|
AmbiguousMatchException | 指定した名前を持ち、指定したバインディング制約に一致するメソッドが 2 つ以上存在します。 |
ArgumentNullException | name が null 参照 (Visual Basic では Nothing) です。 |
解説
次の BindingFlags フィルタ フラグは、検索対象に含めるメソッドを定義するために使用できます。
- 戻り値を取得するには、 BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。
- 検索対象にパブリック メソッドを含めるための BindingFlags.Public を指定します。
- 検索対象にパブリックではないメソッド (つまり、プライベート メンバやプロテクト メンバ) を含めるための BindingFlags.NonPublic を指定します。
- 階層構造の上位にある静的メソッドを含めるための BindingFlags.FlattenHierarchy を指定します。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
- name の大文字と小文字の違いを無視する場合は BindingFlags.IgnoreCase 。
- 単に継承されただけのメソッドではなく、 Type で宣言されたメソッドだけを検索する場合は BindingFlags.DeclaredOnly 。
詳細については、「 System.Reflection.BindingFlags 」を参照してください。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
メモ コンストラクタおよびメソッドを検索する場合、パラメータは省略できません。パラメータは呼び出すときだけ省略できます。
使用例
[Visual Basic, C#, C++] 指定したバインディング フラグに一致するメソッドを取得し、そのシグニチャを表示する例を次に示します。
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Class [MyClass]
Public Sub MyMethod()
End Sub 'MyMethod
End Class '[MyClass]
Public Class Type_GetMethod
Public Shared Sub Main()
Try
' Get the type of MyClass.
Dim myType As Type = GetType([MyClass])
' Get the method information for MyClass.
Dim myMethodInfo As MethodInfo = myType.GetMethod("MyMethod", BindingFlags.Public Or BindingFlags.Instance)
' Display the method information.
Console.WriteLine(ControlChars.Cr + "The signature of MyMethod is: {0}", myMethodInfo.ToString())
Catch e As Exception
Console.WriteLine("Exception: {0}", e.Message.ToString())
End Try
End Sub 'Main
End Class 'Type_GetMethod
[C#]
using System;
using System.Reflection;
class MyClass
{
public void MyMethod()
{
}
}
public class Type_GetMethod
{
public static void Main()
{
try
{
// Get the type of MyClass.
Type myType = typeof(MyClass);
// Get the method information for MyClass.
MethodInfo myMethodInfo = myType.GetMethod("MyMethod",
BindingFlags.Public|BindingFlags.Instance );
// Display the method information.
Console.WriteLine("\nThe signature of MyMethod is: {0}", myMethodInfo.ToString());
}
catch(Exception e)
{
Console.WriteLine("Exception: {0}", e.Message);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;
__gc class MyClass {
public:
void MyMethod() {
}
};
int main() {
try {
// Get the type of MyClass.
Type* myType = __typeof(MyClass);
// Get the method information for MyClass.
MethodInfo* myMethodInfo = myType->GetMethod(S"MyMethod",
static_cast<BindingFlags>(BindingFlags::Public|BindingFlags::Instance));
// Display the method information.
Console::WriteLine(S"\nThe signature of MyMethod is: {0}", myMethodInfo);
} catch (Exception* e) {
Console::WriteLine(S"Exception: {0}", e->Message);
}
}
[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 Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- ReflectionPermission (非パブリック オブジェクトをリフレクション操作するために必要なアクセス許可) ReflectionPermissionFlag.TypeInformation (関連する列挙体)
参照
Type クラス | Type メンバ | System 名前空間 | Type.GetMethod オーバーロードの一覧 | MethodInfo | String | BindingFlags | DefaultBinder | ReflectionPermission | GetMethodImpl | GetMethods