【发布时间】:2020-01-27 11:47:08
【问题描述】:
目前我尝试通过同一类的另一个属性来验证一个属性。我收到一条错误消息,告诉我以下内容:
非静态字段、方法或属性需要对象引用
对于下面的代码 sn-p,这种错误对我来说绝对有意义。但无论如何,由于属性 B 的值(在我的示例级别中),我尝试验证属性 A(在我的示例 OrderNumber 中)。
是否有可能通过使用验证注释来做到这一点?
这是我目前的代码:
public class A
{
/// <summary>
/// Level
/// </summary>
public string Level { get; set; }
public B B {get;set;}
}
public class B
{
/// <summary>
/// Order Number
/// </summary>
[Level(A.Level)]
public int? OrderNumber { get; set; }
}
public class LevelAttribute : ValidationAttribute
{
private string Dlevel { get; set; }
public LevelAttribute(string dlevel)
{
this.Dlevel = dlevel;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value!=null && (Dlevel.Equals("D1")||Dlevel.Equals("D2")))
{
return new ValidationResult("Invalid Error Message");
}
return ValidationResult.Success;
}
}
感谢您的帮助。
【问题讨论】:
-
属性参数必须是常量值,IIRC
-
不可能链接动态数据域?
-
不,据我所知没有...
标签: c# .net-core validationmessage