扩展类时扩展/更改属性的属性值

时间:2012-10-05 15:38:37

标签: c# attributes

扩展类时是否可以'更改'属性的值?类似于下面的东西:

public class Mammal
{
    [Validation(Required=true, HelpMessage="This is the body shape of a mammal")]
    public virtual string BodyShape { get; set; }

}

public class Dog : Mammal
{
    [Validation(HelpMessage = "This is the body shape of a dog")]
    public override string BodyShape
    {
        get
        {
            return base.BodyShape;
        }
        set
        {
            base.BodyShape = value;
        }
    }
}

我希望能够读取Dog.BodyShape的属性,并将其作为Required = True,并且HelpMessage =“这是狗的身体形状”。这可能吗?如果没有,任何建议的替代方案,可以直接在编译器中向属性添加“元数据”信息?

1 个答案:

答案 0 :(得分:0)

我认为你不能继承属性;它们附加到特定的方法/类。 但是,您可以更改验证的标准实现,以检查类似名称属性的基类。