在C#中,可以通過創建自定義屬性類來自定義元數據屬性。以下是一個示例:
using System;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class CustomAttribute : Attribute
{
public string Description { get; set; }
public CustomAttribute(string description)
{
Description = description;
}
}
[CustomAttribute("This is a custom attribute")]
public class MyClass
{
[CustomAttribute("This is a custom method attribute")]
public void MyMethod()
{
// do something
}
}
class Program
{
static void Main()
{
Console.WriteLine("Custom attribute applied to class: " + typeof(MyClass).GetCustomAttributes(typeof(CustomAttribute), false)[0]);
Console.WriteLine("Custom attribute applied to method: " + typeof(MyClass).GetMethod("MyMethod").GetCustomAttributes(typeof(CustomAttribute), false)[0]);
}
}
在上面的示例中,我們創建了一個CustomAttribute類,它繼承自Attribute類,并定義了一個Description屬性。然后,我們在MyClass類和MyMethod方法上應用了CustomAttribute自定義屬性。在Main方法中,我們可以使用反射來訪問這些自定義屬性并打印它們的值。
請注意,我們可以在CustomAttribute的構造函數中傳遞描述信息,并且我們可以通過AttributeUsage特性來指定自定義屬性可以應用于哪些目標。