0

クラスを拡張するときに、属性の値を「変更」することは可能ですか? 以下のようなもの:

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 = "これは犬の体型です" として取得できるようにしたいと考えています。これは可能ですか?そうでない場合、コンパイラで直接「メタデータ」情報をプロパティに追加できる代替案はありますか?

4

1 に答える 1

0

属性を継承できるとは思いません。それらは特定のメソッド/クラスに関連付けられています。ただし、検証の標準実装を変更して、同様の名前のプロパティの基本クラスもチェックすることができます。

于 2012-10-05T16:50:37.727 に答える