我在C#项目中有一堆数据类。我需要在处理这些类的对象之前执行验证。这些类不具有共同的接口。 我想制定某种设计模式,我可以指定需要在类的每个字段上执行验证;而没有一组其他类型的条件。C#数据验证设计模式
我遇到了规范模式,但这似乎并不令人信服。
我可以使用任何现有模式/ C#方法吗?
[更新:我结束了使用注释和规范模式的组合。基本验证可以通过注释完成。如果发生任何不能通过注释验证的特殊情况,那些验证通过规范书写]
我在C#项目中有一堆数据类。我需要在处理这些类的对象之前执行验证。这些类不具有共同的接口。 我想制定某种设计模式,我可以指定需要在类的每个字段上执行验证;而没有一组其他类型的条件。C#数据验证设计模式
我遇到了规范模式,但这似乎并不令人信服。
我可以使用任何现有模式/ C#方法吗?
[更新:我结束了使用注释和规范模式的组合。基本验证可以通过注释完成。如果发生任何不能通过注释验证的特殊情况,那些验证通过规范书写]
您可能只想使用属性来指定您的验证规则。这是所有基本验证存在的名称空间:ComonpentModel.DataAnnotations。如果你想更有趣,这个NuGet包给你很多额外的属性:Data Annotation Extensions。这两个都支持ASP.NET MVC不显眼验证的客户端验证。
除了Milimetric的回答,你也可以看看Code Contracts。从你的问题这一点并不明显,如果它会适合您的需要
代码合同规定的方式指定的先决条件,后置条件, 和对象不变量在你的代码。前提条件是需求 ,在输入方法或属性时必须满足。后续条件 描述了方法或财产代码退出时的期望值。 对象不变量描述处于良好状态的类的预期状态。
看一看NCommon库,它是规格和验证周围有用模式的集合。
有关更多链接和信息,还请参阅my answer to this post。