Enterprise Library 3.0 体验(3):使用配置文件的Validation Application Block

摘要:Enterprise Library 3.0 January 2007 CTP版发布了,这次发布的版对于Validation Application Block有了很大的改进,包括对配置工具的支持,与ASP.NET以及WinForm的集成等新的特性。在上一篇文章中我介绍了如何使用Attribute来实现验证,文本看一下如何利用配置文件来使用Validation Application Block

 

1.新建一个控制台应用程序,仍然使用我在前一篇文章中用过的User实体类,这跟我们编写的普通业务对象并没有任何区别:

public class User

{

    private String _name;

 

    private int _age;

 

    public String Name

    {

        get { return _name; }

        set { _name = value; }

    }

 

    public int Age

    {

        get { return _age; }

        set { _age = value; }

    }

}

2.先对项目编译,添加配置文件App.config,在VS.NET2005中打开,默认会用Enterprise Library配置工具打开,新建Validation Application Block,如下图所示:

3.完成后在Validation Application Block上右键菜单中新建类型,就是我们需要验证的类:

在弹出的类型选择对话框中,加载我们刚才编译后的.EXE文件,就可以找到User类,在实际中我们会把它们单独放在一个项目中,这时只需要加载对应的DLL文件就可以了。

4.在User类上新建验证规则的集合,可以在属性对话框中修改验证规则的名称,对于每个类我们可以建立多个验证规则:

5.在规则上就可以新建我们需要验证的属性了,这里我们建立NameAge两个属性,也可以建立对FieldMethod的验证:

6.在属性上创建验证器,在当前版本中,Validation Application Block提供了大量了验证器供我们使用,如下图所示:

7.对于每个验证器,可以通过属性对话框中的MessageTemplate属性来设置验证通不过时的提示信息:

8.前面说过可以建立多个验证规则,对于每个类型,可以为它设置一个默认的验证规则:

9.编写简单的验证代码,仍然使用Validation外观类,我们可以使用ValidateFromConfiguration方法来实现验证:

class Program

{

    static void Main(string[] args)

    {

        User user = new User();

        user.Name = "TerryLee";

        user.Age = 210;

 

        ValidationResults results = Validation.ValidateFromConfiguration<User>(user);

 

        foreach (ValidationResult result in results)

        {

            Console.WriteLine(String.Format("Key: {0},Message: {1}", result.Key.ToString(), result.Message));

        }

 

        Console.Read();

 

    }

}

简单的使用配置文件的Validation Application Block验证就完成了。在后面的文章中我会介绍到Validation Application Block如何与ASP.NETWinForm集成等新的特性J

注意本文使用的版本是Enterprise Library 3.0 January 2007 CTP版本。

 

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

posted on 2007-01-21 00:20 TerryLee 阅读(11767) 评论(29)  编辑 收藏 所属分类: Enterprise Library

评论

#1楼  2007-01-21 08:18 一滴水      

强大,谢谢分享!   回复  引用  查看    

#2楼  2007-01-21 15:09 shenfx      

不错,学习,之前还以为不能用Configuration工具呢   回复  引用  查看    

#3楼  2007-01-21 16:52 Hunts.C      

我安装了V3.0,在vs2005中使用Configuration工具时出了致命错误,麻烦Terry帮忙看下:http://www.cnblogs.com/hunts/archive/2007/01/21/ent_lib_error.html   回复  引用  查看    

#4楼  2007-01-21 19:58 aspnetx      

感觉最近好想只有EL有动静了TerryLee才会出现
年底了大家可能都忙去了吧,呵呵   回复  引用  查看    

#5楼 [楼主] 2007-01-21 22:02 TerryLee      

@一滴水
:)   回复  引用  查看    

#6楼 [楼主] 2007-01-21 22:05 TerryLee      

@shenfx
在上一个CTP版本中确实不支持,现在可以了:)   回复  引用  查看    

#7楼 [楼主] 2007-01-21 22:18 TerryLee      

@Hunts.C
我没有同时装过这两个,你试试在打开方式中重新添加Enterprise Library Configuration为EL3.0种的配置工具,再试试。,   回复  引用  查看    

#8楼 [楼主] 2007-01-21 22:21 TerryLee      

@aspnetx
嗯,年底的确很忙,忙着结项去了,呵呵

不过最近几天我应该有时间写点文章的:)   回复  引用  查看    

#9楼  2007-01-22 22:23 overred      

不错
只是工作忙,时间少,没空研究喽
哎   回复  引用  查看    

#10楼 [楼主] 2007-01-23 22:51 TerryLee      

@overred
是啊,最近我也很忙

忙里偷闲研究一下,呵呵:)   回复  引用  查看    

#11楼  2007-04-06 13:34 kiler      

请问一下用这种方式添加的验证规则保存在哪里,会修改源代码还是保存在配置文件里面   回复  引用  查看    

#12楼  2007-04-25 11:54 心悦      

如果业务类很多的话,那配置文件的内容不是很多?有什么好处?   回复  引用  查看    

#13楼  2007-06-09 13:33 howej [未注册用户]

能不能对比一下使用配置文件和使用类代码定义Validation?   回复  引用    

#14楼  2007-06-21 17:29 xiao_p      

8.前面说过可以建立多个验证规则,对于每个类型,可以为它设置一个默认的验证规则:

>>这个默认的设置规则一定要选,哪怕只有一个规则,否则就得不到validateresult,我因为这个折腾了半天 :P   回复  引用  查看    

#15楼  2007-11-30 16:19 蓝苛 [未注册用户]

博主设计模式,还有企业库等文章写的真是好
十分佩服,简直是偶像啊   回复  引用    

#16楼  2007-12-13 07:13 gavindou [未注册用户]

Enterprise Library 3.1找不到Int32 Range Validator,是去掉了吗?   回复  引用    

#17楼  2007-12-13 14:37 cq_wsz [未注册用户]

想问下,我一个类建立了几个ROLE SET,我怎么用代码动态改变ROLE SET设置了???   回复  引用    

#18楼  2008-03-27 17:24 181314      

一口气看完所有的,中文的看起来快多了。写的太好了,非常感谢。   回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印
 


导航

公告

  • 网名:TerryLee
  • 本名:李会军
  • 位置:中国北京 Ethos
  • 联系方式:
  • 访问我的个人主页

 MVP配置

 个人主页

 版权声明

  • 本站采用创作共用许可 署名,非商业

绿色通道

IT新闻

统计

与我联系

留言簿(323)

我的标签

随笔分类

随笔档案

个人站点

关注项目

好的网站

我的好友

搜索

积分与排名

阅读排行榜

评论排行榜