我们有一个自定义属性
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class CustomDesignerAttribute: Attribute然后我们就有了一个用这个属性修饰的基类
[CustomDesigner(someKey, someValue)]
public class BaseClass然后我们有一个从这个类派生的类,用相同的属性装饰(具有相同的键,不同的值)
[CustomDesigner(someKey, someOtherValue)]
public class ChildClass : BaseClass有没有可能ChildClass不会创建重复的属性,而是覆盖现有键的值(覆盖整个父属性)?如果不是,如果ChildClass没有定义自己的默认值,那么从BaseClass获取默认值的最佳模式是什么?
发布于 2012-05-28 23:43:16
不,无法覆盖现有属性。
属性是附加到对象(程序集、类、方法、变量等)的元数据,因此它们始终保持这种连接。
如果您想在基类中给出一个默认的“行为”,并在一些派生类中覆盖它,您必须检查GetCustomAttributes()返回的所有属性,以便只使用派生最多的属性(列表中的第一个)。
https://stackoverflow.com/questions/10787082
复制相似问题