如何在Web API中注册模型绑定程序?

时间:2019-02-14 21:46:08

标签: asp.net-web-api

我正在尝试在Web Api中注册自定义模型活页夹,但似乎找不到正确的方法。

  

System.ArgumentException:'不支持服务类型SimpleModelBinderProvider。

WebApiConfig.cs

using System.Web.Http;
using System.Web.ModelBinding;

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        ...

        var provider = new SimpleModelBinderProvider(typeof(CustomerIdentity), new CustomerIdentityModelBinder());
        config.Services.Insert(typeof(SimpleModelBinderProvider), 0, provider);

        ...
    }
}

我尝试过SimpleModelBinderProviderModelBinderProvider

在Web API中注册自定义模型联编程序的正确方法是什么?

注意:我不在类上使用ModelBinderAttribute,因为它在另一个程序集中,这会导致循环依赖(并且我不喜欢用属性装饰类)。

注意: em>

注意:开始认为这可能与名称空间有关。该项目中同时包含MVC5和WebApi2。

1 个答案:

答案 0 :(得分:1)

命名空间问题

我应该一直在使用命名空间:

// In the WebApiConfig.
using System.Web.Http.ModelBinding;
using System.Web.Http.ModelBinding.Binders;

// For the ModelBinder itself.
using System.Web.Http.Controllers;
using System.Web.Http.ModelBinding;
using System.Web.Http.ValueProviders;

代替:

using System.Web.ModelBinding;

代码和类名几乎相同,这就是为什么很难查找和找出原因的原因。