Asp.net WebAPI 2 зависимости инъекции дает ошибку - PullRequest
0 голосов
/ 31 мая 2019

когда контейнер единиц используется для внедрения зависимостей по атрибутам с использованием следующего кода:

container.RegisterTypes(
            AllClasses.FromLoadedAssemblies()
                      .Where(t => t.GetCustomAttributes<ABCAttribute>(true).Any()),
            WithMappings.FromMatchingInterface,
            WithName.Default,
            WithLifetime.PerThread);

WebAPI получает исключение, что

Произошла ошибка при попытке создать контроллервведите «ABCController».Убедитесь, что в контроллере есть открытый конструктор без параметров. "," ExceptionType ":" System.InvalidOperationException

Примечание: - при первом очистке и сборке решения проблема не возникает, нокогда через некоторое время вызывается api,

пытается создать конструктор без параметров, но снова получает то же исключение.исключение не возникает при очистке и сборке решения в первый раз

public ABCController()
{

}

также пытался создать конструктор без параметров в ServiceManager, который вводится зависимостью внутри контроллера, например

public class ABCController : ApiController
{
    public ABCController(IServiceManager ServiceManager)
    {
        _ServiceManager = ServiceManager;
    }
}

Ожидаемый результатis WEBAPI должен работать нормально, так как внедрение зависимостей по атрибутам должно зависеть от конструктора без параметров в любом случае, так как по рефлексу контейнер должен знать, какой контроллер запускать на основе запроса маршрута.

Конструктор без параметров является поведением asp.net webapi по умолчанию.Есть ли какое-то исключение, скрытое под этим исключением?

...