在C#中自定义Attribute可以通过创建一个继承自System.Attribute
类的新类来实现。下面是一个简单的示例代码:
using System;
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class CustomAttribute : Attribute
{
public string Description { get; set; }
public CustomAttribute(string description)
{
Description = description;
}
}
public class MyClass
{
[CustomAttribute("This is a custom attribute")]
public void MyMethod()
{
Console.WriteLine("Executing MyMethod");
}
}
class Program
{
static void Main()
{
MyClass myClass = new MyClass();
var method = typeof(MyClass).GetMethod("MyMethod");
var attribute = (CustomAttribute)Attribute.GetCustomAttribute(method, typeof(CustomAttribute));
if (attribute != null)
{
Console.WriteLine(attribute.Description);
}
myClass.MyMethod();
}
}
在以上示例中,我们首先定义了一个名为CustomAttribute
的自定义属性类,并在其构造函数中初始化一个Description
属性。然后,我们在MyMethod
方法上应用了这个自定义属性。在Main
方法中,我们使用Attribute.GetCustomAttribute
方法来获取MyMethod
方法上的CustomAttribute
属性,并打印出其Description
属性的值。
这是一个简单的示例,你可以根据自己的需求扩展自定义属性的功能和用法。