C#中GetCustomAttributes如何獲取成員屬性

c#
小樊
166
2024-08-19 13:11:30

在C#中,可以使用GetCustomAttributes方法來(lái)獲取成員的屬性。該方法可以用于獲取指定成員(如類(lèi)、屬性或方法)上的自定義屬性。

以下是一個(gè)示例,演示如何使用GetCustomAttributes方法獲取一個(gè)類(lèi)的自定義屬性:

using System;
using System.Reflection;

// 定義一個(gè)自定義屬性
[AttributeUsage(AttributeTargets.Class)]
public class CustomAttribute : Attribute
{
    public string Name { get; set; }

    public CustomAttribute(string name)
    {
        Name = name;
    }
}

// 應(yīng)用自定義屬性
[CustomAttribute("MyClass")]
public class MyClass
{
    public void MyMethod() { }
}

class Program
{
    public static void Main()
    {
        // 獲取 MyClass 類(lèi)上的所有自定義屬性
        CustomAttribute[] attributes = (CustomAttribute[])Attribute.GetCustomAttributes(typeof(MyClass), typeof(CustomAttribute));

        // 輸出自定義屬性的值
        foreach (CustomAttribute attribute in attributes)
        {
            Console.WriteLine($"Custom Attribute Name: {attribute.Name}");
        }
    }
}

在上面的示例中,我們創(chuàng)建了一個(gè)名為CustomAttribute的自定義屬性,并將其應(yīng)用于MyClass類(lèi)。然后,在Main方法中,我們使用GetCustomAttributes方法獲取MyClass類(lèi)上的所有自定義屬性,并輸出其中的屬性值。

0