gpt4 book ai didi

.net - 如何获取属性覆盖属性?

转载 作者:行者123 更新时间:2023-12-02 07:27:45 25 4
gpt4 key购买 nike

不起作用Attribute.GetCustomAttribute :

using System;

class Program
{
static void Main()
{
var p = typeof(MyClass2).GetProperty("Value");
var a = Attribute.GetCustomAttribute(p, typeof(ObsoleteAttribute), true);
Console.WriteLine(a != null);
}
}

public class MyClass
{
[Obsolete]
public virtual string Value { get; set; }
}

public class MyClass2 : MyClass
{
public override string Value { get; set; }
}

输出:错误

为什么?

最佳答案

如果您查看 ObsoleteAttribute 的文档你会看到它的 AttributeUsage 设置 Inherited为 false - 因此该属性不会被重写成员继承。

我怀疑如果您检查它是否覆盖了基本属性并沿着继承链向上移动,您将能够以这种方式发现该属性。诚然,做这种事情有点困惑。

关于.net - 如何获取属性覆盖属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com