C# Web.API 无法添加自定义模型绑定器

C# Web.API Cannot add custom model binder

我有 API 有一个 Put 方法的控制器

public class ScheduleExecutionsController : ApiController
{

    public ScheduleExecutionsResponse Put([ModelBinder(typeof(TestBinder))]ScheduleExecutionsRequest requestInfo)
    {
        ....
    }
}

我在项目中添加了活页夹class

public class TestBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        return new ScheduleExecutionsRequest();
    }
}

我设置了2个断点。第一个是控制器中 Put 方法的第一行,第二个是我的 TestBinder BindModel 对象的第一行。 使用 Fiddler 后,我发送 PUT 请求。

调试器总是在我的操作中停止,但从不在活页夹的 BindModel 方法中停止。似乎使用了默认活页夹。我错过了什么来添加自定义的?

您使用的是 ModelBinderAttributeWebAPI or MVC 版本吗?

MVC 和 WebAPI 的大部分基础设施——过滤器、绑定等——以两种形式存在(由于这两个库的历史)。您的 WebAPI 控制器和操作 必须 使用它们的 WebAPI 版本(命名空间 System.Web.Http 或其子命名空间)。