修改User模块,同步原始代码
This commit is contained in:
1 parent
4a5fada435
commit
78b0c2bb2e
47 files changed
+2939
-193
No files matched your search
@@ -0,0 +1,27 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace MAX.Framework.Validation;
|
||||
|
||||
/// <summary>通用请求校验入口,供各模块复用,不依赖 HTTP、数据库或具体业务。</summary>
|
||||
public static class RequestValidator
|
||||
{
|
||||
/// <summary>
|
||||
/// 检查对象非空,并验证全部属性上的数据注解及 IValidatableObject 规则。
|
||||
/// 不递归验证子对象;对象为空抛出 ArgumentNullException,规则不满足抛出 ValidationException。
|
||||
/// </summary>
|
||||
public static void Validate(object? request)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
Validator.ValidateObject(request, new ValidationContext(request), validateAllProperties: true);
|
||||
}
|
||||
|
||||
/// <summary>不抛出规则验证异常,适用于登录等需要自行处理校验结果的入口;对象为空仍视为调用错误。</summary>
|
||||
public static bool TryValidate(object? request, out IReadOnlyList<ValidationResult> errors)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
var results = new List<ValidationResult>();
|
||||
bool valid = Validator.TryValidateObject(request, new ValidationContext(request), results, validateAllProperties: true);
|
||||
errors = results.AsReadOnly();
|
||||
return valid;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user