3

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

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

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

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

4

3 回答 3

3

您可能只想使用 Attributes 来指定您的验证规则。这是存在所有基本验证的命名空间:ComonpentModel.DataAnnotations。如果你想变得更高级,这个 NuGet 包为你提供了许多额外的属性:数据注释扩展。这两者都支持使用 ASP.NET 的 MVC 不显眼的验证进行客户端验证。

于 2012-07-21T19:14:41.340 回答
1

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

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

于 2012-07-21T19:16:41.073 回答
0

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

有关更多链接和信息,另请参阅我对这篇文章的回答

于 2012-07-23T06:50:20.490 回答