【发布时间】:2019-11-25 13:50:01
【问题描述】:
我希望能够在有条件的情况下从类型的属性中删除所需的属性。假设我有一堂这样的课;
public partial class UserTest
{
[Key]
public int USERID { get; set; }
[StringLength(250)]
public string USERNAME { get; set; }
[StringLength(250)]
public string USERSURNAME { get; set; }
[Required]
[StringLength(50)]
public string TEST { get; set; }
}
我想要做的是,我希望能够在运行时从名为 TEST 的属性中删除 [Required] 属性,这样当我初始化 UserTest 对象时,编译器就不会强制执行我给TEST 属性赋值。它不一定要从字面上“删除”该属性,但也欢迎使用其他方法,例如在运行时为其赋予默认值。我将如何完成这样的任务?
提前致谢。
【问题讨论】:
-
您不能在运行时删除属性,抱歉。您可以继承
Attribute并创建自己的。 -
你不能在运行时移除一个属性;它们在编译时进行评估。您将需要创建自己的自定义属性或使用其他形式的验证。
标签: c#