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 ...
随机推荐
- shell_基础知识
参考: http://blog.csdn.net/kaizi318/article/details/9343551 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告 ...
- Bootstrap修改input file默认样式
html部分 <div class="form-group"> <label class="col-sm-3 control-label"&g ...
- 2016年 Delphi Roadmap
2016年delphi Roadmap 发布,这也是新公司的第一次发布路线图. 虽然稍微晚点( 原来说是1月份发布路线图),至少比过去积极点.喧嚣多年的靴子终于落地. Linux 的支持终于正式公布. ...
- django中自定义标签和过滤器
想要实现自定义标签和过滤器需要进行准备工作: 准备(必需)工作: 1 在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为polls的app下创建了一个tem ...
- linux 下文件节点索引
最近发现一个奇怪的问题,就是一个pyhton 后台的服务一直打印日志文件,在中间我用vim看日志文件,关闭时习惯性的:wq退出,在此之后日志文件就不输出了. 1 对于这个现象我开始认为是python ...
- Eclipse PHP Studio(EPP)
Eclipse PHP Studio (EPP) 中文版官方网站 :http://epp.php100.com/ EclipsePHP Studio 简体中文版介绍 - EPP EclipsePHP ...
- return exit _exit
(1)进程终止: C程序的终止分为两种:正常终止和异常终止. 正常终止分为: return, exit, _exit, _Exit, pthreade_exit. 异常中指分为: abort, SIG ...
- iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用
CoreData的介绍和使用 源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...
- java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView
最近在学习drawerLayout时,遇到这个bug.如下示: java.lang.ClassCastException: android.widget.RelativeLayout cannot b ...
- IQKeyboardManager在某个页面取消键盘上面的Toolbar
使用IQKeyboardManager的时候,如果想在某个页面取消键盘上面的Toolbar,请使用如下方法,按控制器去操作 // 取消IQKeyboardManager Toolbar [[IQKey ...