когда контейнер единиц используется для внедрения зависимостей по атрибутам с использованием следующего кода:
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 по умолчанию.Есть ли какое-то исключение, скрытое под этим исключением?