このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
GetCustomAttributes メソッド (Module, Type)

Attribute.GetCustomAttributes メソッド (Module, Type)

モジュールに適用されたカスタム属性の配列を取得します。各パラメータは、対象のモジュールと検索対象のカスタム属性の型を指定します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)

public static Attribute[] GetCustomAttributes (
	Module element,
	Type attributeType
)
public static Attribute[] GetCustomAttributes (
	Module element, 
	Type attributeType
)
public static function GetCustomAttributes (
	element : Module, 
	attributeType : Type
) : Attribute[]
適用できません。

パラメータ

element

移植可能な実行可能 (PE) ファイルを記述する Module クラスから派生したオブジェクト。

attributeType

検索対象とするカスタム属性の型または基本型。

戻り値

element に適用された attributeType 型のカスタム属性を格納する Attribute 配列。該当するカスタム属性が存在しない場合は空の配列。

例外の種類条件

ArgumentNullException

element または attributeType が null 参照 (Visual Basic では Nothing) です。

ArgumentException

attributeTypeAttribute から派生していません。

パラメータとして Module を受け取る GetCustomAttributes の使用方法を次のコード例に示します。

using System;
using System.Reflection;
using System.ComponentModel;

// Assign some attributes to the module.
[module:Description("A sample description")]

// Set the module's CLSCompliant attribute to false
// The CLSCompliant attribute is applicable for /target:module.
[module:CLSCompliant(false)]

namespace CustAttrs2CS {
    class DemoClass {
        static void Main(string[] args) {
            Type clsType = typeof(DemoClass);
            // Get the Module type to access its metadata.
            Module module = clsType.Module;

            // Iterate through all the attributes for the module.
            foreach(Attribute attr in Attribute.GetCustomAttributes(module)) {
                // Check for the Description attribute.
                if (attr.GetType() == typeof(DescriptionAttribute))
                    Console.WriteLine("Module {0} has the description " +
                        "\"{1}\".", module.Name, 
                        ((DescriptionAttribute)attr).Description);
                // Check for the CLSCompliant attribute.
                else if (attr.GetType() == typeof(CLSCompliantAttribute))
                    Console.WriteLine("Module {0} {1} CLSCompliant.",
                        module.Name,
                        ((CLSCompliantAttribute)attr).IsCompliant ? 
                            "is" : "is not");
            }
        }
    }
}

/*
 * Output:
 * Module CustAttrs2CS.exe is not CLSCompliant.
 * Module CustAttrs2CS.exe has the description "A sample description".
 */

package CustAttrs2JSL; 
import System.*;
import System.Reflection.*;
import System.ComponentModel.*;

// Assign some attributes to the module.
/** @module Description("A sample description")
 */

// Set the module's CLSCompliant attribute to false
// The CLSCompliant attribute is applicable for /target:module.
/** @module CLSCompliant(false)
 */
class DemoClass
{
    public static void main(String[] args)
    {
        Type clsType = DemoClass.class.ToType();

        // Get the Module type to access its metadata.
        Module module = clsType.get_Module();

        // Iterate through all the attributes for the module.
        for (int iCtr = 0; iCtr < Attribute.GetCustomAttributes(module).
            get_Length(); iCtr++) {
            Attribute attr = (Attribute)Attribute.GetCustomAttributes(module).
                get_Item(iCtr);
            // Check for the Description attribute.
            if (attr.GetType().Equals(DescriptionAttribute.class.ToType())) {
                Console.WriteLine("Module {0} has the description " + 
                    "\"{1}\".", module.get_Name(),
                    ((DescriptionAttribute)attr).get_Description());
            }
            // Check for the CLSCompliant attribute.
            else {
                if (attr.GetType().Equals(CLSCompliantAttribute.class.
                    ToType())) {
                    Console.WriteLine("Module {0} {1} CLSCompliant.",
                        module.get_Name(), (((CLSCompliantAttribute)attr).
                        get_IsCompliant()) ? "is" : "is not");
                }
            }
        }
    } //main
} //DemoClass   

/*
    Output:
    Module CustAttrs2CS.exe is not CLSCompliant.
    Module CustAttrs2CS.exe has the description "A sample description".
 */

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

.NET Compact Framework

サポート対象 : 2.0,1.0

XNA Framework

サポート対象 : 1.0

コミュニティの追加

追加
表示:
© 2015 Microsoft