代码之家  ›  专栏  ›  技术社区  ›  Josh

两个应用程序之间共享的对象模型上的数据批注

  •  2
  • Josh  · 技术社区  · 14 年前

    我有一个包含对象模型的类库。我希望每个对象都有数据注释,以便将验证规则放入我的模型中,以便可以在两个应用程序之间共享验证。一个是MVC2应用程序,另一个是Windows窗体应用程序。

    我需要能够使用数据注释从代码中手动验证对象模型,但不需要使用xVal。当我将对象模型库切换到4.0客户机概要文件时,它不能再使用xVal组件构建。域对象类库将随windows应用程序一起分发,因此我希望利用4.0客户端配置文件。

    有什么想法吗?

    1 回复  |  直到 12 年前
        1
  •  1
  •   ladenedge    14 年前

    好吧,我会提供一个更具体的答案,以防对其他人有所帮助。

    public void Validate(T entity)
    {
        var context = new ValidationContext(entity, null, null);
        var results = new List<ValidationResult>();
    
        bool valid = Validator.TryValidateObject(entity, context, results, true);
    
        if (!valid)
            ; // do something fancy with the results here, perhaps
    }
    

    你也可以跳过 TryValidateObject 然后直接去 ValidateObject 如果你不想对结果做任何花哨的事。