如何对可为空的字符串使用流畅的验证?

How to Use fluent validation for nullable string?

我有下面的代码,它抛出空检查异常:

 RuleFor(x => x.TestString)
                .Must(x => !string.IsNullOrEmpty(x))
                .When(y => y.OtherArray!= null && y.OtherArray.Count > 0)
                .WithMessage("required") 
                .Must(x=> x.TestString.Equals("tiktok"))
                .WithMessage("Invalid") 

但是上面的代码在 TestString 为 null 时抛出 Object null 引用异常。

我的要求是当“OtherArray”有值时,“TestString”必须等于“tiktok”,此时应显示无效的TestString Invalid 错误消息。

当“OtherArray”为 null 或空时,则无需检查“TestString”。 有人可以帮忙吗?

试试这个:

RuleFor(x => x.TestString)
            .Must(x => !string.IsNullOrEmpty(x))
            .When(y => y.OtherArray!= null && y.OtherArray.Count > 0)
            .WithMessage("required") 
            .Must(x=> x.TestString != null && x.TestString.Equals("tiktok"))
            .WithMessage("Invalid")