Assembly.GetCustomAttributes メソッド (Type, Boolean)
型を指定して、このアセンブリのカスタム属性を取得します。
Overloads Public Overridable Function GetCustomAttributes( _
ByVal attributeType As Type, _ ByVal inherit As Boolean _) As Object() Implements ICustomAttributeProvider.GetCustomAttributes
[C#]
public virtual object[] GetCustomAttributes(TypeattributeType,boolinherit);
[C++]
public: virtual Object* GetCustomAttributes(Type* attributeType,boolinherit) __gc[];
[JScript]
public function GetCustomAttributes(
attributeType : Type,inherit : Boolean) : Object[];
パラメータ
戻り値
このアセンブリの attributeType で指定されたカスタム属性を格納しているオブジェクト型の配列。
実装
ICustomAttributeProvider.GetCustomAttributes
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | attributeType が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | attributeType がランタイム型ではありません。 |
解説
このメソッドは、対応する ICustomAttributeProvider インターフェイス メソッドを実装します。したがって、 inherit パラメータは無視される場合でも指定する必要があります。
疑似属性は、その属性が存在する場合に設定する必要があるコア メタデータのビットを示します。型のメタデータを拡張し、その型と共に保存されるカスタム属性とは異なり、疑似属性は型のメタデータを変更した後に破棄されます。その結果得られる一部のビットは、既存のリフレクション API を使用してアクセスできません。
擬似属性と、リフレクションで使用可能なビットのアクセサの相違点をまとめた表を次に示します。
擬似属性 | メタデータ ビット | リフレクション アクセサ |
---|---|---|
DllImportAttribute | CorPInvokeMap
DLL 名 |
通常のメソッド属性やグローバル メソッド属性用の PInvokeMap に対するアクセサはありません。
DLL 名に対するアクセサはありません。 |
GuidAttribute | 実際のカスタム属性として格納されます。 | 実際のカスタム属性としてアクセスされます。 |
ComImportAttribute | CorTypeAttr.tdImport | Type.Attributes.Import |
SerializableAttribute | CorTypeAttr.tdSerializable | Type.Attributes.Serializable |
NonSerializedAttribute | CorFieldAttr.fdNotSerialized | FieldInfo.Attributes.NotSerialized |
MethodImplAttribute | CorMethodImpl | MethodInfo.GetMethodImplementationFlags()
ConstructorInfo.GetMethodImplementationFlags() |
MarshalAsAttribute | さまざまなビット。 | アクセサはありません。 |
PreserveSigAttribute | CorMethodImpl.miOLE | MethodInfo.GetMethodImplementationFlags().OLE
ConstructorInfo.GetMethodImplementationFlags().OLE |
InAttribute | CorParamAttr.pdIn | ParameterInfo.Attributes.In |
OutAttribute | CorParamAttr.pdOut | ParameterInfo.Attributes.Out |
StructLayoutAttribute | CorTypeAttr.tdLayoutSequential
CorTypeAttr.tdExplicitLayout CorTypeAttr.tdAnsiClass CorTypeAttr.tdUnicodeClass CorTypeAttr.tdAutoClass クラス パッキング。 |
Type.Attributes.LayoutSequential
Type.Attributes.ExplicitLayout Type.Attributes.AnsiClass Type.Attributes.UnicodeClass Type.Attributes.AutoClass アクセサはありません。 |
FieldOffsetAttribute | フィールド オフセット。 | アクセサはありません。 |
AssemblyLoadAttribute | CorAssemblyFlags | アクセサまたは列挙子はありません。 |
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
参照
Assembly クラス | Assembly メンバ | System.Reflection 名前空間 | Assembly.GetCustomAttributes オーバーロードの一覧