如何解决这是 C# 记录和 DataAnnotation 的错误吗?没有讨厌的黑客就无法使 [Required] 属性起作用
此代码会通过,但不应该。
public record EmptyString([Required]string Name);
var context = new ValidationContext(src,null,null);
var es = new EmptyString("");
bool valid = Validator.TryValidateObject(src,context,results,true);
Assert.IsTrue(valid);
// ???? this shows up as valid! When it's clearly NOT!
在Required前面加上property:
,突然就可以了。但是第一个代码(上面)没有给出编译错误!
// add property to line below see
public record EmptyString([property:Required]string Name);
var context = new ValidationContext(src,null);
var es = new EmptyString("");
bool valid = Validator.TryValidateObject(src,true);
// suddenly we get correct behaviour.
Assert.IsFalse(valid);
这是 C# 9 的错误,还是我遗漏了什么? 发送
艾伦
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。