繁体   English   中英

如何将DataAnnotations属性添加到C#类中的特定属性

[英]How to add DataAnnotations attributes to specific properties in a C# class

我想向My Answer类的不同实例添加不同的DataAnnotations属性,如下所示:

 public class AnswerViewModel()
   {
   public String QuestionText {get;set;}
   public String AnswerText {get;set;}
   }

我想在此类的不同实例中将不同的属性分配给QuestionText字段。

AnswerViewModel a1 = new AnswerViewModel();
AnswerViewModel a2 = new AnswerViewModel();

我希望a1中的QuestionText字段应用DateTimeAttribute,而在a2中,QuestionText字段应该应用PasswordAttribute,依此类推。 我知道这将通过反射或TypeDescriptor完成,但是我完全不知道该如何完成。

不可能。 数据注释将应用于每个实例。 您可以完成所寻找内容的唯一方法是使用单独的视图模型:

public abstract class BaseAnswerViewModel
{
    public abstract string QuestionText { get; set; }
    public string AnswerText { get; set; }
}

public class DateTimeAnswerViewModel : BaseAnswerViewModel
{
    [DataType(DataType.DateTime)]
    public override string QuestionText { get; set; }
}

public class PasswordAnswerViewModel : BaseAnswerViewModel
{
    [DataType(DataType.Password)]
    public override string QuestionText { get; set; }
}

然后:

var a1 = new DateTimeAnswerViewModel();
var a2 = new PasswordAnswerViewModel();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM