使用PIAB和VAB实现业务实体的自动验证
2008-09-05 15:42
579 查看
微软企业库的VAB(Validation Application Block)用来提供对业务实体的字段有效性进行验证,PIAB(Policy Injection Application Block)用来实现AOP技术,关于VAB的内容请参考园子里TerryLee
(http://www.cnblogs.com/Terrylee/archive/2006/12/25/Enterprise_Library_3_Validation_Application_Block.html)的文章,关于PIAB的内容请参考Artech(http://www.cnblogs.com/artech/archive/2008/08/08/1263418.html)的文章。
我们做系统时根据需求会写很多业务实体,这些实体一般用来作为业务层方法的参数(输入或者输出),例如 public bool AddUser(UserEntity userentity)这个业务方法,UserEntity是我们定义的业务实体,我们在写这个方法时,先要对这个实体里面的属性值进行合法性验证,才能进行以后的操作,当然,我们可以在在这个方法中手工写一些验证的代码来完成,只是比较麻烦而已,我们也可以借助VAB,在实体定义的属性上增加一些验证的Attribute,如下:
Code
public class TestValitate : MarshalByRefObject
{
[ValidateCallHandler()]
public bool AddUser(UserEntity userentity)
{
//userentity.ValidateEntity();
return true;
}
}
然后写个测试,看看:
TestValitate test = PolicyInjection.Create<TestValitate>();
UserEntity userentity = new UserEntity();
userentity.UserName = "xiaozhuang";
userentity.Age = 101;
userentity.Email = "iamxiaozhuang@163.com";
try
{
test.AddUser(userentity);
}
catch (CustomException ex)
{
Console.Write(ex.Message);
}
Console.ReadKey();
(http://www.cnblogs.com/Terrylee/archive/2006/12/25/Enterprise_Library_3_Validation_Application_Block.html)的文章,关于PIAB的内容请参考Artech(http://www.cnblogs.com/artech/archive/2008/08/08/1263418.html)的文章。
我们做系统时根据需求会写很多业务实体,这些实体一般用来作为业务层方法的参数(输入或者输出),例如 public bool AddUser(UserEntity userentity)这个业务方法,UserEntity是我们定义的业务实体,我们在写这个方法时,先要对这个实体里面的属性值进行合法性验证,才能进行以后的操作,当然,我们可以在在这个方法中手工写一些验证的代码来完成,只是比较麻烦而已,我们也可以借助VAB,在实体定义的属性上增加一些验证的Attribute,如下:
Code
public class TestValitate : MarshalByRefObject
{
[ValidateCallHandler()]
public bool AddUser(UserEntity userentity)
{
//userentity.ValidateEntity();
return true;
}
}
然后写个测试,看看:
TestValitate test = PolicyInjection.Create<TestValitate>();
UserEntity userentity = new UserEntity();
userentity.UserName = "xiaozhuang";
userentity.Age = 101;
userentity.Email = "iamxiaozhuang@163.com";
try
{
test.AddUser(userentity);
}
catch (CustomException ex)
{
Console.Write(ex.Message);
}
Console.ReadKey();
相关文章推荐
- 使用PIAB和VAB实现业务实体的自动验证
- 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法
- Eclipse使用自带插件JPA Tools实现自动生成数据库对应表的实体类(不使用Hibernate)
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证
- 使用 jquery.validate.messages_cn.js 插件实现表单自动验证,出现中文乱码
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- 织梦使用百度Ueditor编辑器上传图片自动生成绝对路径实现方法(测试可用)
- Nginx的伪静态配置中使用rewrite来实现自动补全的实例
- Linux使用Shell脚本实现ftp的自动上传下载(转)
- 使用JAVA实现签名验证示例程序
- EF使用时异常:对一个或多个实体的验证失败。有关详细信息
- java 验证用户是否已经登录与实现自动登录方法详解
- C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量巧用,属性实际运用,唯一性验证
- android 中使用AutoCompleteTextView 可以实现自动提示功能
- Maven JavaWEB项目使用Gulp自动构建js和css实现代码压缩、版本后缀
- 构建RESTful Web Service - 验证的实现和使用(HTTP 基本认证)
- 使用仿函实现函数参数的部分自动填充