跳到主要内容

自定义特性要求继承的类是 ?

参考答案:

在C#中,当你想要定义一个自定义特性(Attribute),你需要让你的特性类继承自System.Attribute类。System.Attribute是所有特性类的基类,它提供了特性类所需的基础结构和功能。

下面是一个简单的自定义特性的例子:

using System;

// 自定义特性 MyCustomAttribute 继承自 Attribute 类
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public class MyCustomAttribute : Attribute
{
    // 特性类的构造函数
    public MyCustomAttribute(string description)
    {
        Description = description;
    }

    // 特性类的属性
    public string Description { get; }
}

在这个例子中,MyCustomAttribute 类继承自 System.Attribute,并且使用 AttributeUsage 特性来指定这个自定义特性可以被应用于哪些目标(例如类和方法),以及是否允许多个这样的特性被应用于同一个目标。

一旦你定义了这样的自定义特性,你就可以在其他类或者方法上应用这个特性,如下:

// 使用自定义特性 MyCustomAttribute 装饰一个类
[MyCustomAttribute("这是一个自定义特性的示例")]
public class MyClass
{
    // 使用自定义特性 MyCustomAttribute 装饰一个方法
    [MyCustomAttribute("这是MyClass中方法的自定义描述")]
    public void MyMethod()
    {
        // 方法体
    }
}

在这个例子中,MyClass 类和 MyMethod 方法都被 MyCustomAttribute 特性所装饰,并且每个特性都有一个不同的描述字符串。

在运行时,你可以通过反射来查询这些特性,并获取它们的值。这对于实现如依赖注入、序列化、验证等功能的框架和库来说是非常有用的。