Как зарегистрировать модель подшивки в веб-интерфейсе? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь зарегистрировать привязку пользовательской модели в Web Api, но не могу найти правильный способ сделать это.

System.ArgumentException: 'Тип сервиса SimpleModelBinderProvider isне поддерживается. '

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.

Как правильно зарегистрировать привязку пользовательской модели в веб-интерфейсе?

ПРИМЕЧАНИЕ. Я не использую ModelBinderAttribute в классе, потому что он находится в другой сборке, которая будетвызывать циклическую зависимость (и потому что я не люблю украшать классы атрибутами).

ПРИМЕЧАНИЕ: начинаю думать, что это может быть связано с пространством имен.В проекте есть и MVC5, и WebApi2.

1 Ответ

0 голосов
/ 15 февраля 2019

Проблема с пространством имен

Я должен был использовать пространства имен:

// 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;

Код был рядомидентичны так же, как и имена классов, поэтому было трудно отследить и выяснить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...