在我的 ASP.NET 应用程序中,我有用于数据、业务和 UI 层的单独项目。
我的业务层由具有声明性验证的普通对象组成,使用 DataAnnotations。
问题是,在保存它们时,我不确定如何处理验证,因为它们没有直接绑定到任何数据上下文,而是映射到单独的数据层对象。
有没有办法触发对这些类型的对象的验证?
在我的 ASP.NET 应用程序中,我有用于数据、业务和 UI 层的单独项目。
我的业务层由具有声明性验证的普通对象组成,使用 DataAnnotations。
问题是,在保存它们时,我不确定如何处理验证,因为它们没有直接绑定到任何数据上下文,而是映射到单独的数据层对象。
有没有办法触发对这些类型的对象的验证?
在这篇文章的 StackOverflow 上(间接)找到了答案。(感谢阿特伍德和斯波尔斯基!)
原来你必须调用 Validator 类。
所以我在我的 POCO 中添加了一个 Validate() 方法:
public void Validate()
{
Validator.ValidateObject(this, new ValidationContext(this, null, null));
}
我还必须将 ComponentModel.DataAnnotations DLL 的 .NET 3.5 版本换成更新的 .NET 4.0 版本,其中包括 ValidationContext 类等。