如何验证 Status 是否存在于我的静态类中?
public static class AppConstants
{
public static class FormStatus
{
public static string NEW = "New";
public static string COMPLETE = "Complete";
public static string DELETED = "Deleted";
}
}
验证器类
public SetStatusCommandValidator(IApplicationDbContext context)
{
_context = context;
RuleFor(v => v.Status)
.NotNull()
.NotEmpty().WithMessage("Status is required.")
.Must(???).WithMessage("Status is not a valid.");
}
基本上,如何验证状态值必须是 AppConstants.FormStatus 之一?
谢谢!
最佳答案
您可以在 Must
谓词中创建内联集合/数组并使用 .Contains
:
RuleFor(v => v.Status)
.NotNull()
.NotEmpty().WithMessage(...)
.Must(v => new [] { AppConstants.FormStatus.NEW, AppConstants.FormStatus.COMPLETE, AppConstants.FormStatus.DELETED }.Contains(v)).WithMessage(...);
或者,您可以向包含所有这些的 FormStatus
添加另一个属性:
public static class AppConstants
{
public static class FormStatus
{
// Statuses here
public static string[] ALL_STATUSES = new string[] { NEW, COMPLETE, DELETED };
}
}
然后你的 Must
谓词就变成 Must(v => AppConstants.FormStatus.ALL_STATUSES.Contains(v)).WithMessage(...);
抱歉,如果语法不完全正确并且不能立即编译,我是在手机上编写的,无法仔细检查。
关于c# - 来自 App 常量的流畅验证自定义检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68371602/