entlib验证组件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators; //https://msdn.microsoft.com/zh-cn/library/ff953181(v=pandp.50).aspx 企业库总目录
//https://msdn.microsoft.com/zh-cn/library/hh315829(v=pandp.50).aspx 企业库验证组件 /*
验证程序的 Message 属性实际上是一个模板,而不只是一个简单的可显示的文本字符串。
* 在块将单个 ValidationResult 添加到它检测到的每个验证错误的 ValidationResults 实例中时,
* 它分析 Message 属性的值,该属性查找将用检测到错误的验证程序的特定属性值来替换的标记。
注入到占位符标记中的值和使用的标记数量取决于验证程序的类型(虽然有三个通用于所有验证程序的标记)。
* 标记 {0} 将被正在验证的对象的值替换(确保在显示或使用该值之前先转义该值,以防止注入式攻击)。
* 标记 {1} 将包含正在验证的成员的名称(如果可用),并等同于验证程序的 Key 属性。标记 {2) 将包含验证程序的 Tag 属性的值。
其余标记取决于相应的验证程序类型。例如,对于“包含字符”验证程序,标记 {3} 和 {4} 将要检查的字符和 ContainsCharacters 值(All 或 Any)。
* 对于范围验证程序(例如“字符串长度”验证程序),标记 {3} 到 {6} 将包含您为验证程序指定的下限和上限的值和绑定类型(Inclusive、Exclusive 或 Ignore)。例如,可以定义如下“字符串长度”验证程序:
[StringLengthValidator(5, RangeBoundaryType.Inclusive, 20,
RangeBoundaryType.Inclusive,
MessageTemplate = "{1} must be between {3} and {5} characters.")]
*/
namespace DPC.EntLib.Validation
{
class Program
{
static void Main(string[] args)
{
Validator<Person> personValidator
= ValidationFactory.CreateValidator<Person>();
Person person = new Person();
person.Name = "";
person.Age = 110;
ValidationResults valResults = personValidator.Validate(person); //personValidator.DoValidate(person,
if (valResults.Count == 0)
{
Console.WriteLine("验证通过...");
}
else
{
foreach (var result in valResults)
{
Console.WriteLine(result.Message);
}
}
Console.ReadLine();
}
} [HasSelfValidation]
public class Person
{
[StringLengthValidator(1,6,MessageTemplate="xxxx")]
//[StringLength(4,MinimumLength = 1,ErrorMessage="姓名长度要介于1-4个字符")]
public string Name { get; set; } [RangeValidator(0, RangeBoundaryType.Inclusive, 100, RangeBoundaryType.Inclusive, MessageTemplate = "字段{1}的值必须介于{3}-{5}之间")]
public int Age { get; set; } [NotNullValidator(MessageTemplate ="zzzzzzz")]
public int? Weight { get; set; } [SelfValidation()]
public void DoValidate(ValidationResults results)
{
results.AddResult(new ValidationResult("自定义错误消息",this,"self","",null ));
} }
}
entlib验证组件的更多相关文章
- kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...
- .NET平台开源项目速览(10)FluentValidation验证组件深入使用(二)
在上一篇文章:.NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一) 中,给大家初步介绍了一下FluentValidation验证组件的使用情况.文章从构建间的验证器开 ...
- .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...
- 模型验证组件——FluentValidation
之前在博客园有幸从网友那里得知一个C#的模型验证组件(哈 不知道这样表述正确不),组件的功能比较简单,主要是实现了对Model的验证,例如验证用户名是否为空,密码长度是不是多余6个字符,当然还有其他更 ...
- ASP.NET通用权限验证组件实现
沙发(SF)通用权限验证组件 开篇 本篇介绍通用权限验证的实现代码思路,总共分为导入参数.解析XML.根据XML配置进行处理.返回结果. 代码架构图 1. 类介绍 1.SFWebPermissio ...
- 容器扩展属性 IExtenderProvider 实现WinForm通用数据验证组件
大家对如下的Tip组件使用应该不陌生,要想让窗体上的控件使用ToolTip功能,只需要拖动一个ToolTip组件到窗口,所有的控件就可以使用该功能,做信息提示. 本博文要记录的,就是通过容器扩展属性 ...
- 自定义react数据验证组件
我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题.如果用户提交的数据不合法,例如格式不正确.非数字类型.超过最大长度.是否必填项.最大值和最小值等等,我们需要在相应的地方给出提示信息. ...
- .NET Core中的验证组件FluentValidation的实战分享
今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NET Core实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码 ...
- asp.net mvc 模型验证组件——FluentValidation
asp.net mvc 模型验证组件——FluentValidation 示例 using FluentValidation; public class CustomerValidator: Abst ...
随机推荐
- string.Format 格式化输出日期
string.Format("{0:d}",System.DateTime.Now) 结果为:2009-3-20 (月份位置不是03) string.Format("{0 ...
- 初学javaweb,远离各自框架
OSCHINA 软件库有一个分类--Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项 ...
- python代码中指定时区获取时间方法
os.environ['TZ'] = 'Asia/Shanghai' os.environ['TZ'] = 'Europe/London' hour_cur = time.strftime('%H')
- UITaleView的基础使用及数据展示操作
UITableView表视图,是实用的数据展示的基础控件,是继承于UIScrollView,所以也可以滚动.但不同于UIScrollView,UITableView只可以上下滚动,而不能左右滚动. 因 ...
- C# 或 Asp.net 2.0 邮件发送模块(亲测)
using System.Net.Mail;using System.Net; public class Mail { MailMessage mm; SmtpCli ...
- Python自动化 【第一篇】:Python简介和入门
Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范 ...
- 32、shiro框架入门3.授权
一. 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission ...
- 使用NuGet Package Project快速制作NuGet包
今天在visual studio gallery发现了一个插件NuGet Package Project,通过它可以在Visual Studio中建立Nuget Package工程,直接生成Nuget ...
- 几篇关于VisualStudio的调试工具文章
现代的软件变得日益复杂,强大的调试功能也变得日益重要起来.在VisualStudio的最近几个版本中,在调试工具方面也是增强了不少的,本文转录了几个微软官方介绍的一些新增的调试功能的文章,如果能很好的 ...
- php关闭错误提示
今天调试phalcon的一个接口时候碰到如下提示: Deprecated: mongogo::mongogo(): The Mongo class is deprecated, please use ...