在应用服务中调用验证方法
Posted
技术标签:
【中文标题】在应用服务中调用验证方法【英文标题】:Call a validation method in application service 【发布时间】:2021-11-21 00:41:49 【问题描述】:如何在需要时从应用程序服务中的验证器类调用方法并抛出异常消息并将其显示在基于“aspnetboilerplate”的项目中?
【问题讨论】:
抱歉,您的要求对我来说很难,请您描述得更形象一些吗? 有一个 dto 作为参数传递给方法,我使用 ABP.FluentValidation 来检查验证,ABP 将运行 Validator 类自动验证 dto 类....现在,我想调用方法即在应用服务的 Validator 类中随时需要 【参考方案1】:AbstractValidator<T>
有 Validate
方法。 see.
Install-Package Abp.FluentValidation
public class MyDto
public int Value get; set;
public class MyDtoValidator : AbstractValidator<MyDto>
public MyDtoValidator()
RuleFor(x => x.Value).InclusiveBetween(1, 99)
.WithMessage("Value must be between 1 and 99");
var myDtoInstance = new MyDto Value: 505 ;
var myValidatorInstance = new MyValidator();
myDtoValidatorInstance.Validate(myDtoInstance);
在您的自定义消息的最后一行引发异常。
另见AbstractValidator
tests。
【讨论】:
它可以帮助我,感谢您的合作;)【参考方案2】:您无需从验证器调用方法来验证 DTO。
查看link中FluentValidation标题下的内容
Install-Package Abp.FluentValidation
[DependsOn(typeof(AbpFluentValidationModule))]
public class MyProjectAppModule : AbpModule
public class MyDto
public int Value get; set;
public class MyTestController : AbpController
public JsonResult GetJsonValue([FromQuery] MyDto dto)
return Json(new MyDto
Value = dto.Value
);
public class MyDtoValidator : AbstractValidator<MyDto>
public MyDtoValidator()
RuleFor(x => x.Value).InclusiveBetween(1, 99);
【讨论】:
MyDtoValidator 类及其方法自动调用,这不是我想要的,我想在需要时调用 MyDtoValidator 类的方法以上是关于在应用服务中调用验证方法的主要内容,如果未能解决你的问题,请参考以下文章
用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法
创建一个 TOKEN 系统来验证 Web 服务调用的最佳方法是啥?
System.err:调用 js 方法 onCreate 失败 - System.err:错误:缺少主条目。应用程序无法启动。验证应用引导程序