c# attributeusage怎么用

c#
662
2024/11/27 0:23:31
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

AttributeUsage 是一个 C# 属性,用于指定自定义属性在代码中的使用方式。它位于 System.ComponentModel 命名空间中。通过使用 AttributeUsage,您可以控制属性的重复使用、继承和应用于哪些代码元素(如类、方法、属性等)。

以下是如何使用 AttributeUsage 的示例:

  1. 首先,定义一个自定义属性。例如,我们创建一个名为 MyCustomAttribute 的属性:
using System;

[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
public class MyCustomAttribute : Attribute
{
    public string MyProperty { get; set; }

    public MyCustomAttribute(string myProperty)
    {
        MyProperty = myProperty;
    }
}

在这个例子中,我们使用 AttributeUsage 指定了以下选项:

  • AttributeTargets.Method:表示该属性只能应用于方法。
  • Inherited = false:表示该属性不可继承。
  • AllowMultiple = true:表示该属性可以应用于同一个元素多次。
  1. 然后,在需要使用自定义属性的方法上应用该属性:
public class MyClass
{
    [MyCustom("Hello, World!")]
    public void MyMethod()
    {
        Console.WriteLine("This is my method.");
    }
}

在这个例子中,我们将 MyCustomAttribute 应用于 MyMethod 方法。由于我们在 AttributeUsage 中设置了 AllowMultiple = true,因此可以在同一个类中的其他方法上多次使用此属性。

  1. 最后,通过反射获取属性信息并处理它:
using System;
using System.Reflection;

public class Program
{
    public static void Main()
    {
        Type type = typeof(MyClass);
        MethodInfo method = type.GetMethod("MyMethod");

        if (method.IsDefined(typeof(MyCustomAttribute), false))
        {
            var attributes = method.GetCustomAttributes(typeof(MyCustomAttribute), false) as MyCustomAttribute[];
            foreach (var attribute in attributes)
            {
                Console.WriteLine($"MyCustomAttribute value: {attribute.MyProperty}");
            }
        }
    }
}

在这个例子中,我们使用反射获取 MyClass 类的 MyMethod 方法的信息,并检查它是否定义了 MyCustomAttribute。如果定义了该属性,我们遍历属性数组并输出属性值。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 怎样使用C# StackTrace提高效率