【问题标题】:C# Data Validation Design PatternsC# 数据验证设计模式
【发布时间】:2012-08-01 14:28:22
【问题描述】:

我的 C# 项目中有一堆数据类。我需要在处理这些类的对象之前执行验证。这些类没有公共接口。 我正在尝试制定某种设计模式,我可以在其中指定需要在类的每个字段上执行的验证;没有一组 if else 类型条件。

我遇到了规范模式,但这似乎不太令人信服。

我可以使用任何现有的模式/C# 方法吗?

[更新:我最终使用了注释和规范模式的组合。基本验证可以通过注释完成。如果出现任何无法通过注解验证的特殊情况,这些验证将通过规范编写]

【问题讨论】:

    标签: c# validation design-patterns


    【解决方案1】:

    您可能只想使用属性来指定您的验证规则。这是存在所有基本验证的命名空间:ComonpentModel.DataAnnotations。如果你想变得更高级,这个 NuGet 包为你提供了许多额外的属性:Data Annotation Extensions。这两者都支持使用 ASP.NET 的 MVC 非侵入式验证进行客户端验证。

    【讨论】:

      【解决方案2】:

      除了 Milimetric 的回答,您还可以查看 Code Contracts。从您的问题来看,它是否符合您的需求尚不清楚

      代码契约提供了一种指定前置条件、后置条件、 和代码中的对象不变量。先决条件就是要求 输入方法或属性时必须满足的条件。后置条件 描述方法或属性代码退出时的期望。 对象不变量描述了一个类的预期状态 状态不错。

      【讨论】:

        【解决方案3】:

        看看NCommon 库,它是关于规范和验证的有用模式的集合。

        有关更多链接和信息,另请参阅my answer to this post

        【讨论】:

          猜你喜欢
          • 2010-09-07
          • 1970-01-01
          • 2012-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多