How to add attributes to a base class's properties

后端 未结 4 1934
独厮守ぢ
独厮守ぢ 2020-12-08 12:51

I have a couple model classes like so:

public class MyModelBase
{
    public string Name { get; set; }
}

public class MyModel : MyModelBase
{
    public str         


        
4条回答
  •  情深已故
    2020-12-08 13:27

    Declare the property in the parent class as virtual:

    public class MyModelBase
    {
        public virtual string Name { get; set; }
    }
    
    public class MyModel : MyModelBase
    {
        [Required]
        public override string Name { get; set; }
    
        public string SomeOtherProperty { get; set; }
    }
    

    Or you could use a MetadataType to handle the validation (as long as you're talking about DataAnnotations...otherwise you're stuck with the example above):

    class MyModelMetadata
    {
        [Required]
        public string Name { get; set; }
    
        public string SomeOtherProperty { get; set; }
    }
    
    [MetadataType(typeof(MyModelMetadata))]
    public class MyModel : MyModelBase
    {
        public string SomeOtherProperty { get; set; }
    }
    

提交回复
热议问题