gpt4 book ai didi

c# - 为什么 NotNullValidator 不起作用?

转载 作者:行者123 更新时间:2023-11-28 21:35:02 25 4
gpt4 key购买 nike

我正在使用 Microsoft Enterprise Validation。但在这种情况下,测试通过了,即使我为该属性分配了空值。为什么?

[NotNullValidator(MessageTemplate = "Cannot be null!", Ruleset="validate_x")]
[StringLengthValidator(10, RangeBoundaryType.Inclusive, 40, RangeBoundaryType.Inclusive, Ruleset="validate_x")]
[RegexValidator(@"^[A-Z][a-z]*\s[A-Z][a-z]*$", MessageTemplate = "Not valid!", Ruleset="validate_x")]
public string x
{
get;
set;
}

在测试类中:

[TestMethod()]
public void xTest()
{
MyBO target = new MyBO() { x = null };
ValidationResults vr = Validation.Validate<MyBO>(target, "validate_x");
Assert.IsTrue(vr.IsValid);
}

所以我知道这是有效的,但它不应该是。 (x 为空!)有什么想法吗?

谢谢

最佳答案

将您提供的代码复制到一个简单的控制台应用程序时,我看到 ValidationResults 对象的 IsValid 属性变为 False。我认为你在某处做错了什么,但这是不可能的,所以只需查看你的代码就可以看到这一点。这是我使用的代码:

public class MyBO
{
[NotNullValidator(MessageTemplate = "Cannot be null!",
Ruleset = "validate_x")]
[StringLengthValidator(10, RangeBoundaryType.Inclusive, 40,
RangeBoundaryType.Inclusive, Ruleset = "validate_x")]
[RegexValidator(@"^[A-Z][a-z]*\s[A-Z][a-z]*$",
MessageTemplate = "Not valid!", Ruleset = "validate_x")]
public string x { get; set; }
}

class Program
{
static void Main(string[] args)
{
MyBO target = new MyBO() { x = null };
ValidationResults vr = Validation.Validate<MyBO>(target, "validate_x");
Console.WriteLine(vr.IsValid);
}
}

关于c# - 为什么 NotNullValidator 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com