C# 替换ApicController.Validate与ControllerBase.TryValidateModel

C# 替换ApicController.Validate与ControllerBase.TryValidateModel,c#,validation,asp.net-core,data-annotations,C#,Validation,Asp.net Core,Data Annotations,为了进行单元测试,我需要手动验证各种对象及其数据注释属性。 我知道我可以使用验证程序.TryValidateObject。问题是它不能递归地工作 我尝试使用ApiController。它工作得很好,但是对于较新版本的.NET来说,ApiController已经过时了。我不在乎,但我在工作中需要这个功能 public class ValidationController : ApiController { public ValidationController() {

为了进行单元测试,我需要手动验证各种对象及其数据注释属性。 我知道我可以使用
验证程序.TryValidateObject
。问题是它不能递归地工作

我尝试使用
ApiController
。它工作得很好,但是对于较新版本的.NET来说,
ApiController
已经过时了。我不在乎,但我在工作中需要这个功能

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;
    }
}
公共类验证控制器:ApiController
{
公共验证控制器()
{
this.Request=new-HttpRequestMessage();
this.Request.SetConfiguration(新的HttpConfiguration());
}
公共bool有效(T modelToValidate)
{
this.ModelState.Clear();
this.Validate(modelToValidate);
返回this.ModelState.IsValid;
}
}
我用
ControllerBase
重新创建了
ValidationController
。 我尝试使用它的
TryValidateModel()
。但是我无法初始化该类以使该方法工作


您知道如何初始化
ControllerBase
以使验证生效吗?

当您使用
ValidationController:ControllerBase
时,可以直接在
ValidationController
中使用
TryValidateModel(modelToValidate);