【发布时间】:2012-12-10 18:26:42
【问题描述】:
有一个很好的question 覆盖属性的继承属性。
假设一个属性:
[AttributeUsage(AttributeTargets.All, Inherited = true)]
public class MyAttributeAttribute : Attribute
//...
public class ParentClass
{
[MyAttribute]
public String MyString;
}
public class ChildClass : ParentClass
{
new public String MyString; //Doesn't have MyAttribute
}
但是如果MyAttribute 被设置为一个类呢?
[MyAttribute]
public class ParentClass
public class ChildClass; //Don't want MyAttribute
有没有办法让 ChildClass 不继承该属性?
背景:纯理论。我想让一个属性可继承,并想知道如果某天发生这种情况,我是否可以覆盖它。
【问题讨论】:
-
嗯,您的第一个示例是声明一个与
ParentClass.MyString完全没有关系 的新成员;没有压倒一切,自然不会共享属性。我知道通过反射,您可以获得专门针对目标类型声明的属性或展平以包含来自任何继承类的所有属性。 -
@ChrisSinclair 你是对的。我的措辞不正确。
标签: c# custom-attributes