IoC on Asp.NET WebAPI - Ninject

 Recentemente passei por muitos problemas tentando implementar injeção de dependência (IoC) numa aplicação Web API C# com Ninject (WebCommon e WebAPI plugins).

Problema

Error activating ModelValidatorProvider using binding from ModelValidatorProvider to NinjectDefaultModelValidatorProvider
A cyclical dependency was detected between the constructors of two services.

Activation path:
3) Injection of dependency ModelValidatorProvider into parameter defaultModelValidatorProviders of constructor of type DefaultModelValidatorProviders
2) Injection of dependency DefaultModelValidatorProviders into parameter defaultModelValidatorProviders of constructor of type NinjectDefaultModelValidatorProvider

  1. Request for ModelValidatorProvider

Solução

A única forma que consegui resolver foi utilizando o Unity Converter. Aparentemente existem diversas issues abertas no GitHub para o Ninject.

https://docs.microsoft.com/pt-br/aspnet/web-api/overview/advanced/dependency-injection

Esse site da Microsoft descreve passo a passo como implementar o Unity Converter em uma aplicação Web API.

É importante falar que IoC é resolvido por padrão no .NET Core. Porém, existem diversos projetos antigos que ainda dependem dessas libs de Injeção de dependência.

Comentários

Postagens mais visitadas