当前位置: 首页 > web >正文

5分钟入门WPF和FluentValidation数据验证

文章目录

    • 🌟 什么是 FluentValidation?
    • 🔧 核心特点
    • 🧩 常见应用场景
    • 📚 官方资源
    • 📦 5分钟入门
    • 1. 安装依赖
    • 2. 定义数据模型
    • 3. 创建验证规则
    • 4. 在ViewModel中集成验证
    • 5. 在UI中显示验证错误
    • 总结

🌟 什么是 FluentValidation?

FluentValidation 是一个用于 .NET 应用程序的轻量级、类型安全的验证库,它允许你以流利的(Fluent)API 风格 为你的业务对象定义验证规则。

与传统的 IDataErrorInfo 或数据注解(Data Annotations)相比,FluentValidation 提供了更强大、灵活且易于维护的验证方式。


🔧 核心特点

特性描述
✅ 流式 API使用 C# Lambda 表达式定义验证规则,语法简洁直观
✅ 强类型验证支持编译时检查,减少运行时错误
✅ 可扩展性强支持自定义验证器、条件规则、异步验证等
✅ 与 MVVM 兼容可轻松集成到 WPF、Blazor、ASP.NET Core 等框架中
✅ 多平台支持支持 .NET Core、.NET 5/6/7/8、Mono 等

🧩 常见应用场景

  • ✅ ASP.NET Core 请求模型验证
  • ✅ WPF / WinForms 数据绑定验证
  • ✅ Blazor 表单提交校验
  • ✅ 后端服务层参数校验(如 DTO)

📚 官方资源

  • 官网:https://fluentvalidation.net
  • GitHub:https://github.com/FluentValidation/FluentValidation

📦 5分钟入门


1. 安装依赖

首先在项目中添加FluentValidation包引用:

<ItemGroup><PackageReference Include="FluentValidation" Version="12.0.0" />
</ItemGroup>

2. 定义数据模型

创建一个简单的用户模型类:

public class User
{public string Username { get; set; }public string Email { get; set; }public string Password { get; set; }
}

3. 创建验证规则

使用FluentValidation定义验证规则:

public class UserValidator : AbstractValidator<User>
{public UserValidator(){RuleFor(u => u.Username).NotEmpty().WithMessage("用户名不能为空").MinimumLength(3).WithMessage("用户名至少3个字符");RuleFor(u => u.Email).NotEmpty().WithMessage("邮箱不能为空").EmailAddress().WithMessage("邮箱格式不正确");RuleFor(u => u.Password).NotEmpty().WithMessage("密码不能为空").MinimumLength(6).WithMessage("密码至少6个字符");}
}

4. 在ViewModel中集成验证

在ViewModel中调用验证器并处理验证结果:

private readonly UserValidator _validator = new();private void Validate()
{var user = new User{Username = Username,Email = Email,Password = Password,};ValidationResult results = _validator.Validate(user);if (results.IsValid){ValidationErrors = string.Empty;}else{ValidationErrors = string.Join("\\n", results.Errors.Select(e => e.ErrorMessage));}
}

5. 在UI中显示验证错误

在XAML中绑定验证错误信息:

<TextBlock Grid.Row="6" Margin="0,10,0,0"Foreground="Red"Text="{Binding ValidationErrors}" />

总结

FluentValidation提供了强大且灵活的验证规则定义方式,通过MVVM模式可以很好地集成到WPF应用中。这种方法具有以下优点:

  1. 验证规则与业务逻辑分离
  2. 支持复杂的条件验证
  3. 易于维护和扩展
  4. 提供清晰的错误信息
http://www.xdnf.cn/news/9248.html

相关文章:

  • opencv(C++) 图像滤波
  • Dataset和Dataloader
  • VR三维数字空间还原
  • 大模型(4)——Agent(基于大型语言模型的智能代理)
  • 计算机网络基础知识
  • 7000字基于 SpringBoot 的 Cosplay 文化展示与交流社区系统设计与实现
  • 批量文件重命名工具
  • Web安全测试-文件上传绕过-DVWA
  • 【机器学习基础】机器学习入门核心算法:K-近邻算法(K-Nearest Neighbors, KNN)
  • 高效多线程图像处理实战
  • pycharm 新UI 固定菜单栏 pycharm2025 中文版
  • 小样本分类新突破:QPT技术详解
  • Mac M1 安装 ffmpeg
  • winsock对话设计框架
  • 大咖课 | 后期-文本分析
  • 新编辑器编写指南--给自己的备忘
  • 【请关注】VC++ MFC常见异常问题及处理方法
  • 如何使用PHP创建一个安全的用户注册表单,包含输入验证、数据过滤和结果反馈教程。
  • 第三十三天打卡
  • Windows安装Docker部署dify,接入阿里云api-key进行rag测试
  • 新消息!阿里云ACP大模型认证有变化!
  • https下git拉取gitlab仓库源码
  • tmux 入门实用指南(面向远程 Linux 开发者)
  • 测试报告里都包含哪些内容?
  • 使用pnpm、vite搭建Phaserjs的开发环境
  • 常见的网络设备
  • 【iOS(swift)笔记-11】App版本升级时本地数据库sqlite更新逻辑
  • 二十九、面向对象底层逻辑-SpringMVC九大组件之MultipartResolver接口设计
  • leetcode每日一题 -- 2131.连接两字母单词得到的最长回文串
  • taro + vue3 实现小程序sse长连接实时对话