如何在C#应用程序中使用FluentValidation

吉拉多

我正在构建具有以下层的应用程序

数据-实体框架上下文实体-实体框架POCO对象服务-由WebApi调用以加载/保存实体WebApi-

现在,我认为我应该将业务逻辑放入服务层,因为我有针对实体的服务,例如,我有家庭对象和家庭服务。

要使用FluentValidation创建一个验证对象,您似乎必须从AbstractValidator继承,因为我的服务已经从一个对象继承了,这是不可能的吗?

我猜我唯一的选择是在服务层中创建FamilyValidator并从服务中调用此验证器?

fluentValidation是我最好的选择,还是我在这里感到困惑?

奥马尔·阿拉尼(Omar.Alani)

如果您有一个名为Customer的实体,这就是您为其编写验证器的方式:

public class CustomerValidator: AbstractValidator<Customer> {
  public CustomerValidator() {
    RuleFor(customer => customer.Surname).NotEmpty();
    RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name");
    RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);
    RuleFor(customer => customer.Address).Length(20, 250);
    RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
  }

  private bool BeAValidPostcode(string postcode) {
    // custom postcode validating logic goes here
  }
}

Customer customer = new Customer();
CustomerValidator validator = new CustomerValidator();
ValidationResult results = validator.Validate(customer);

bool validationSucceeded = results.IsValid;
IList<ValidationFailure> failures = results.Errors;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Windows Store(WinRT)应用程序中使用C#检查CapsLock按钮的状态

来自分类Dev

如何在C#应用程序中使用xbox一个控制器

来自分类Dev

如何在C#中使用全局热键来回更改应用程序焦点

来自分类Dev

如何在Visual C#表单应用程序中使用Google Maps API?

来自分类Dev

如何在Windows应用程序中使用WPF和C#上传文件

来自分类Dev

c# 如何在 Windows 窗体应用程序中使用方法?

来自分类Dev

如何在 c# windows 应用程序中使用条形码阅读器?

来自分类Dev

如何在C#应用程序中使用HTML5地理位置

来自分类Dev

在C#中的控制台应用程序中使用的信息如何在消息框中写入相同的信息

来自分类Dev

如何在.NET Web API应用程序中将FluentValidation与Swagger一起使用?

来自分类Dev

在C#应用程序中使用Func类型

来自分类Dev

在桌面C#应用程序中使用OAuth 2

来自分类Dev

在C#应用程序中使用我的R GUI

来自分类Dev

在桌面C#应用程序中使用OAuth 2

来自分类Dev

如何在Grails应用程序中使用API

来自分类Dev

如何在多线程应用程序中使用Hibernate?

来自分类Dev

如何在应用程序中使用像素图?

来自分类Dev

如何在SailsJS应用程序中使用OrientDB

来自分类Dev

如何在WPF应用程序中使用MSHTML

来自分类Dev

如何在Xcode中使用测试(iOS应用程序)

来自分类Dev

如何在MVC应用程序中使用TypeScript

来自分类Dev

如何在iOS应用程序中使用SVG图像

来自分类Dev

如何在余烬应用程序中使用piwik?

来自分类Dev

如何在Rails应用程序模板中使用postgres?

来自分类Dev

如何在Sinatra应用程序中使用sidekiq监控?

来自分类Dev

如何在sailsjs应用程序中使用漂亮错误?

来自分类Dev

如何在WPF应用程序中使用Ninject

来自分类Dev

如何在离线应用程序中使用mysql?

来自分类Dev

如何在SailsJS应用程序中使用多个布局?

Related 相关文章

  1. 1

    如何在Windows Store(WinRT)应用程序中使用C#检查CapsLock按钮的状态

  2. 2

    如何在C#应用程序中使用xbox一个控制器

  3. 3

    如何在C#中使用全局热键来回更改应用程序焦点

  4. 4

    如何在Visual C#表单应用程序中使用Google Maps API?

  5. 5

    如何在Windows应用程序中使用WPF和C#上传文件

  6. 6

    c# 如何在 Windows 窗体应用程序中使用方法?

  7. 7

    如何在 c# windows 应用程序中使用条形码阅读器?

  8. 8

    如何在C#应用程序中使用HTML5地理位置

  9. 9

    在C#中的控制台应用程序中使用的信息如何在消息框中写入相同的信息

  10. 10

    如何在.NET Web API应用程序中将FluentValidation与Swagger一起使用?

  11. 11

    在C#应用程序中使用Func类型

  12. 12

    在桌面C#应用程序中使用OAuth 2

  13. 13

    在C#应用程序中使用我的R GUI

  14. 14

    在桌面C#应用程序中使用OAuth 2

  15. 15

    如何在Grails应用程序中使用API

  16. 16

    如何在多线程应用程序中使用Hibernate?

  17. 17

    如何在应用程序中使用像素图?

  18. 18

    如何在SailsJS应用程序中使用OrientDB

  19. 19

    如何在WPF应用程序中使用MSHTML

  20. 20

    如何在Xcode中使用测试(iOS应用程序)

  21. 21

    如何在MVC应用程序中使用TypeScript

  22. 22

    如何在iOS应用程序中使用SVG图像

  23. 23

    如何在余烬应用程序中使用piwik?

  24. 24

    如何在Rails应用程序模板中使用postgres?

  25. 25

    如何在Sinatra应用程序中使用sidekiq监控?

  26. 26

    如何在sailsjs应用程序中使用漂亮错误?

  27. 27

    如何在WPF应用程序中使用Ninject

  28. 28

    如何在离线应用程序中使用mysql?

  29. 29

    如何在SailsJS应用程序中使用多个布局?

热门标签

归档