Enterprise Library 5.0 中的Validators

  自.NET 4.0的一系列相关技术发布后,重装了WINDOWS。。重装了Visual Studio。。重装了SQL Server等等,真是微软牵一发动我全身。昨晚下载了Enterprise Library 5.0的组件,过去我使用4.1开发的项目中,大量应用了这个框架的Validation相关组件,它的设计的确很不错。不过昨天当我使用新版本的时候,出现了一些毫无头绪的编译错误。

2010051215064584.jpg

  What?所有在Microsoft.Practices.EnterpriseLibrary.Validation.Validators空间下的验证器类都出现了这样的错误。它怎么就不是一个attribute class呢?反正可以看源代码,当然去看一下到底发生什么事。首先看一下这个ValidatorCompositionAttribute类的定义:

ContractedBlock.gif ExpandedBlockStart.gif 代码
namespace Microsoft.Practices.EnterpriseLibrary.Validation.Validators
{
/// <summary>
/// Indicates that the kind of composition to use when multiple <see cref="ValidatorAttribute"/> instances
/// are bound to a language element.
/// </summary>
/// <seealso cref="ValidatorAttribute"/>
[AttributeUsage(AttributeTargets.Property
| AttributeTargets.Field
| AttributeTargets.Method
| AttributeTargets.Parameter
| AttributeTargets.Class,
AllowMultiple
= true ,
Inherited
= false )]
public sealed class ValidatorCompositionAttribute : BaseValidationAttribute
{
private CompositionType compositionType;
/// <summary>
/// Initializes a new instance of the <see cref="ValidatorCompositionAttribute"/> class.
/// </summary>
/// <param name="compositionType"> The <see cref="CompositionType"/> to be used. </param>
public ValidatorCompositionAttribute(CompositionType compositionType)
{
this .compositionType = compositionType;
}

internal CompositionType CompositionType
{
get { return compositionType; }
}
}
}

它继承自BaseValidationAttribute类,不用看下去,它肯定是一个attribute class,因为它的类定义都已经使用了只有从Attribute中继承的类才能使用的特性——AttributeUsage。毫无头绪,唯有上官网看下这个版本的一些变动。该文档地址是:http://entlib.codeplex.com/wikipage?title=EntLib5ChangeLog&#vab

2010051215124629.jpg

  截图里面说明了关于Validation框架的一些变动,尤其是最后一点,说自定义的验证器类必须继承自ValueValidatorAttribute,而不是ValidatorAttribute,否则可能会出现错误。于是我又跑去看刚才BaseValidationAttribute的定义:

2010051215155431.jpg

晕,原来BaseValidationAttribute继承自ValidatorAttribute类,难道就是这里出了问题?不过尽管如此,我没办法改动它啊。于是我留意到,Enterprise Library 5.0的验证组件好像加入了Data Annotation的支持,而Data Annotation的相关组件是System.ComponentModel.DataAnnotations.dll,怀着碰下运气的心态,我在项目中加入了这个组件的引用。Bingo~!所有编译错误消失无踪。原来Enterprise Library 5.0的验证器类在实现上需要使用到Data Annotation,过去是不用的。问题总算结果了。

转载于:https://www.cnblogs.com/klzwj1988/archive/2010/05/12/1733730.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值