Я использую Unity Dependency Injection, и у меня проблемы с ним. Я зарегистрировал свои интерфейсы и классы следующим образом:Unity - текущий тип интерфейса и не может быть сконструирован. Вам не хватает картографирования типов?
container.RegisterType<IUserService, UserService>();
где контейнер является контейнером IUnityContainer.
В моем контроллере у меня есть настройки конструктора принять в параметре IUserService как так:
private readonly IUserService _service;
public DependencyController(IUserService service)
{
_service = service;
}
Когда ссылку на странице, которая направлена на индекс этого контроллера ударил, я получаю следующее ошибка:
«Текущий тип, Converge.Service.Interfaces.IUserService, является интерфейсом и не может быть сконструирован. Вам не хватает сопоставления типов?». Не знаю, чего я могу потерять. Любая помощь очень ценится? Если вам нужна дополнительная информация, дайте мне знать.
UPDATE Вот класс UnityConfig
public class UnityConfig
{
private static readonly Lazy<IUnityContainer> Container = new Lazy<IUnityContainer>(() =>
{
var container = new UnityContainer();
RegisterTypes(container);
return container;
});
public static IUnityContainer GetConfiguredContainer()
{
return Container.Value;
}
private static void RegisterTypes(IUnityContainer container)
{
new ServiceInjection()
.Inject(container);
}
}
public class ServiceInjection
{
public void Inject(IUnityContainer container)
{
container.RegisterType<IUserService, UserService>();
}
}
Просьба показать код из вашего корня композиции (код запуска, связывающий контейнер с MVC). – NightOwl888
Вы уверены, что метод 'Inject' называется? похоже, что ваш регистрационный код контейнера не исполняется – Backs
да, его называют. Вступил в это. –