Type.GetPropertyImpl メソッド
派生クラスによってオーバーライドされるときに、指定のバインディング制約を使用して、指定した引数の型および修飾子と一致するパラメータが設定されたプロパティを検索します。
Protected MustOverride Function GetPropertyImpl( _
ByVal name As String, _ ByVal bindingAttr As BindingFlags, _ ByVal binder As Binder, _ ByVal returnType As Type, _ ByVal types() As Type, _ ByVal modifiers() As ParameterModifier _) As PropertyInfo
[C#]
protected abstract PropertyInfo GetPropertyImpl(stringname,BindingFlagsbindingAttr,Binderbinder,TypereturnType,Type[] types,ParameterModifier[] modifiers);
[C++]
protected: virtual PropertyInfo* GetPropertyImpl(String* name,BindingFlagsbindingAttr,Binder* binder,Type* returnType,Type* types[],ParameterModifiermodifiers[]) = 0;
[JScript]
protected abstract function GetPropertyImpl(
name : String,bindingAttr : BindingFlags,binder : Binder,returnType : Type,types : Type[],modifiers : ParameterModifier[]) : PropertyInfo;
パラメータ
name
取得するプロパティの名前を格納している String 。bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。または
null 参照 (Visual Basic では Nothing) を返す 0。
binder
一連のプロパティを定義し、バインディングを有効にする Binder オブジェクト。バインディングには、オーバーロードされたメンバの選択、引数の型の強制変換、リフレクションによるメンバの呼び出しなどが含まれます。または
DefaultBinder を使用する場合は null 参照 (Visual Basic では Nothing) 。
returnType
プロパティの戻り値の型。types
取得するインデックス付きプロパティに対するパラメータの数値、順序、および型を表す Type オブジェクトの配列。または
インデックス付けされていないプロパティを取得するための、 Type 型の空の配列 (Type[] types = new Type[0])。
modifiers
types 配列内の対応する要素に関連付けられている属性を表す ParameterModifier オブジェクトの配列。既定のバインダは、このパラメータを処理しません。
戻り値
指定した要件と一致するプロパティが存在する場合は、そのプロパティを表す PropertyInfo オブジェクト。それ以外の場合は null 参照 (Visual Basic では Nothing) 。
例外
例外の種類 | 条件 |
---|---|
AmbiguousMatchException | 指定した名前を持ち、指定したバインディング制約に一致するプロパティが 2 つ以上存在します。 |
ArgumentNullException | name が null 参照 (Visual Basic では Nothing) です。
または types が null 参照 (Nothing) です。 または types の 1 つの要素が null 参照 (Nothing) です。 |
ArgumentException | types が多次元です。
または modifiers が多次元です。 または types と modifiers の長さが異なります。 |
解説
既定のバインダは ParameterModifier (modifiers パラメータ) を処理しませんが、 System.Reflection.Binder 抽象クラスを使用して modifiers を処理するカスタム バインダを記述できます。 ParameterModifier は、COM 相互運用機能によって呼び出すときだけに使用され、参照渡しされるパラメータだけが処理されます。
types 配列と modifiers 配列の長さが同じです。types 配列で指定するパラメータには、 modifiers 配列で指定されている pdIn、pdOut、pdLcid、pdRetval、pdOptional、pdHasDefault の各属性を設定できます。これらの属性は、それぞれ [In]、[Out]、[lcid]、[retval]、[optional]、およびパラメータが既定値を持つかどうかを指定する値を表します。パラメータに関連付けられた属性はメタデータに格納され、相互運用性のために使用されます。
次の BindingFlags フィルタ フラグは、検索対象に含めるプロパティを定義するために使用できます。
- 検索対象にインスタンスのプロパティを含めるための Instance。
- 検索対象に静的プロパティを含めるための Static 。
- 検索対象にパブリック プロパティを含めるための Public 。
- 検索対象にパブリックではないプロパティ (つまり、プライベート プロパティやプロテクト プロパティ) を含めるための NonPublic 。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
- name の大文字と小文字の違いを無視するための IgnoreCase 。
- Type で宣言されたプロパティだけを検索するための DeclaredOnly 。単に継承されただけのプロパティは検索されません。
詳細については、「 System.Reflection.BindingFlags 」を参照してください。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
必要条件
プラットフォーム: 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
参照
Type クラス | Type メンバ | System 名前空間 | PropertyInfo | String | BindingFlags | Binder | DefaultBinder | ParameterModifier | ReflectionPermission | GetProperty | GetProperties