我正在寻找验证框架,虽然我已经在使用 NHibernate,但我正在考虑使用 contrib 项目中的 NHibernate.validator,但是我也查看了 MS Validation Block,它似乎很强大,但我还没有深入了解每个框架,所以我想知道有没有人涉足这两个框架,体验如何?
4 回答
NHibernate Validator 不需要您使用 NHibernate 进行持久化。用法可以很简单:
var engine = new ValidatorEngine();
InvalidValue[] errors = engine.Validate(someModelObjectWithAttributes);
foreach(var error in errors)
{
Console.WriteLine(error.Message);
}
当然,它可以挂钩到 NHibernate 并防止无效对象的持久性,但您也可以使用它来验证非持久性对象。
在大多数情况下,我会说 Spring.NET 是相当独立的。这意味着它不应该强迫您重新架构。您可以根据需要使用尽可能多的或尽可能少的。编写一个对象应该很容易,您可以使用 spring 将其注入需要验证的类中。然后,您将该对象连接到城堡中,以获取您需要的“验证组”或“验证器”的名称,然后让 spring 将验证器注入到该对象中,然后您的表单/业务对象/服务将使用验证器。
这是文档的链接,验证是第 12 节:
http://www.springframework.net/docs/1.2.0-M1/reference/html/index.html
您是在使用 Castle 还是在使用 Monorail?
当然,您可以尝试编写自己的验证框架。例如。Karl Seguin 将帮助您:
http://codebetter.com/blogs/karlseguin/archive/2009/04/26/validation-part-1-getting-started.aspx
http://codebetter.com/blogs/karlseguin/archive/2009/04/27/validation-part-2-client-side.aspx
http://codebetter.com/blogs/karlseguin/archive/2009/04/28/validation-part-3-server-side.aspx
这是非常好的解决方案:)
D)以上都不是。我记得去年评估过这个并决定使用 Spring.NET 的验证框架。
如果您使用 NHibernate,您可能还想使用 Spring.NET 的工具来使用 NHibernate。