我正在尝试在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);
...
}
}
我尝试过SimpleModelBinderProvider
和ModelBinderProvider
。
在Web API中注册自定义模型联编程序的正确方法是什么?
注意:我不在类上使用ModelBinderAttribute
,因为它在另一个程序集中,这会导致循环依赖(并且我不喜欢用属性装饰类)。
注意:开始认为这可能与名称空间有关。该项目中同时包含MVC5和WebApi2。
答案 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;
代码和类名几乎相同,这就是为什么很难查找和找出原因的原因。