我需要一个模式来在C#中的对象上应用一些验证

时间:2011-10-17 10:32:07

标签: c# .net validation design-patterns

我正在开发一个验证助手类,它将在 application 对象的实例上应用一些验证规则。 我发现了有关 Hibernate Validator 的问题,但是C#呢?

3 个答案:

答案 0 :(得分:2)

在我目前的项目中,我们使用的是Framwork:http://fluentvalidation.codeplex.com/

它可以与Repository-和Specification-Pattern以及Entity Framework完美配合使用。在这里查找有关这些信息...... https://stackoverflow.com/questions/3175/repository-pattern-tutorial-in-c-sharp

答案 1 :(得分:2)

作为最佳做法,您应该使用System.ComponentModel.DataAnnotation向您的模型/实体声明验证规则 - 这不会烘焙验证的实施,这总是好的。

然后使用验证框架并不是一个困难的选择,取决于您使用的其他技术。例如,如果您使用MVC,那么它具有内置机制,或者如果您使用EF,那么它将为您执行此操作。

修改

示例:

公共课护理治疗     {

[DataType(DataType.Time)]
    public DateTime? SomeDate { get; set; }

    [StringLength(500, ErrorMessage = "This field may not be longer than 500 characters.")]
    public string LongText{ get; set; }


}

答案 2 :(得分:0)

答案可能取决于框架。例如,如果使用WPF,那么您可以实现IDataErrorInfo接口,或者在绑定中抛出异常并使用ValidatesOnExceptions。