首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从基类调用GetCustomAttributes?

从基类调用 GetCustomAttributes 的方法是通过反射。在 C# 中,可以使用 System.Reflection 命名空间中的 GetCustomAttributes 方法来获取自定义属性。以下是一个简单的示例:

代码语言:csharp
复制
using System;
using System.Reflection;

// 自定义属性
public class CustomAttribute : Attribute
{
    public string Value { get; set; }
}

// 基类
public class BaseClass
{
    [CustomAttribute(Value = "Base Class")]
    public virtual void Method()
    {
        Console.WriteLine("Base Class Method");
    }
}

// 派生类
public class DerivedClass : BaseClass
{
    [CustomAttribute(Value = "Derived Class")]
    public override void Method()
    {
        Console.WriteLine("Derived Class Method");
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // 获取派生类的 Method 方法
        MethodInfo methodInfo = typeof(DerivedClass).GetMethod("Method");

        // 获取基类的 Method 方法
        MethodInfo baseMethodInfo = methodInfo.GetBaseDefinition();

        // 获取基类的自定义属性
        object[] baseAttributes = baseMethodInfo.GetCustomAttributes(typeof(CustomAttribute), true);

        // 输出基类的自定义属性
        foreach (CustomAttribute attribute in baseAttributes)
        {
            Console.WriteLine($"Base Class Attribute Value: {attribute.Value}");
        }
    }
}

在这个示例中,我们定义了一个自定义属性 CustomAttribute,并在基类和派生类的 Method 方法上使用了这个属性。然后,我们通过反射获取了派生类的 Method 方法,并使用 GetBaseDefinition 方法获取了基类的 Method 方法。最后,我们使用 GetCustomAttributes 方法获取了基类的自定义属性,并输出了它们的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Aop介绍及几种实现方式

    Aop介绍 我们先看一下wiki百科的介绍 Traditional software development focuses on decomposing systems into units of primary functionality, while recognizing that there are other issues of concern that do not fit well into the primary decomposition. The traditional development process leaves it to the programmers to code modules corresponding to the primary functionality and to make sure that all other issues of concern are addressed in the code wherever appropriate. Programmers need to keep in mind all the things that need to be done, how to deal with each issue, the problems associated with the possible interactions, and the execution of the right behavior at the right time. These concerns span multiple primary functional units within the application, and often result in serious problems faced during application development and maintenance. The distribution of the code for realizing a concern becomes especially critical as the requirements for that concern evolve – a system maintainer must find and correctly update a variety of situations.

    02

    从壹开始学习NetCore 45 ║ 终于解决了事务问题

    今天这个内容,还是来源于两个多月前,我的项目的一个 issue ,当时说到了如何使用事务,为啥要使用事务,我就不多说了,相信肯定都知道,还有那个每次面试都问的题,事务四大特性。不知道还有没有小伙伴记得,不,是都记得!我一直也是各种尝试,直到前几天也尝试了几个办法,还是无果,然后又和 sqlsugar 的作者凯旋讨论这个问题。他说只要能保证每次http 的scope 会话中的 sugar client 是同一个就行了,而且又不能把 client 设置为单例,天天看着这个 issue,心里难免波澜,终于哟,昨天群管 @大黄瓜 小伙伴研究出来了,我很开心,表扬下他,下边就正式说说在我的项目中,如果使用事务的:

    04
    领券