c# - 用 ControllerBase.TryValidateModel 替换 ApiController.Validate
问题描述
为了单元测试的目的,我需要使用它们的数据注释属性手动验证各种对象。我知道我可以使用Validator.TryValidateObject
. 问题是它不能递归地工作。
我试图利用ApiController
. 它工作得很好,但ApiController
对于较新版本的 .NET 来说已经过时了。我不在乎,但我在工作中需要这个功能。
public class ValidationController : ApiController
{
public ValidationController()
{
this.Request = new HttpRequestMessage();
this.Request.SetConfiguration(new HttpConfiguration());
}
public bool IsValid<T>(T modelToValidate)
{
this.ModelState.Clear();
this.Validate(modelToValidate);
return this.ModelState.IsValid;
}
}
我ValidationController
用ControllerBase
. 我尝试使用它的TryValidateModel()
. 但是我无法初始化该类以使该方法起作用。
你知道如何初始化ControllerBase
以使验证工作吗?