Первый раз с использованием MS Unity. У меня есть контроллер со следующим конструктору:Непрерывный публичный конструктор
protected IAdministrationService AdministrationService { get; set; }
public GenerateCacheController(IAdministrationService administrationService)
{
AdministrationService = administrationService;
}
Я получаю следующее сообщение об ошибке при попытке запустить проект:
Убедитесь, что контроллер имеет открытый конструктор без параметров.
В моем Bootstrpper.cs файл У меня есть следующий в методе RegisterTypes:
container.RegisterType<GenerateCacheController>();
я все еще получаю ошибку. Я что-то пропустил? Я использую ASP.NET MVC 5 и Unity 3.
Вот мой Boostrapper.cs файл:
public static class Bootstrapper
{
public static IUnityContainer Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
return container;
}
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
RegisterTypes(container);
return container;
}
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterInstance(container);
var im = new InjectionMember[0];
container.RegisterType<IAdministrationService, AdministrationService>("AdministrationService", im);
container.RegisterType<ILookupMapper, LookupMapper>("LookupMapper", im);
container.RegisterType<IEmailService, EmailService>("EmailService", im);
container.RegisterType<GenerateCacheController>();
var provider = new UnityServiceLocator(container);
ServiceLocator.SetLocatorProvider(() => provider);
}
}
Сокращенная версия класса AdministrationService:
public class AdministrationService : IAdministrationService
{
protected ILookupMapper LookupMapper { get; set; }
protected IEmailService EmailService { get; set; }
public AdministrationService(ILookupMapper lookupMapper, IEmailService emailService)
{
LookupMapper = lookupMapper;
EmailService = emailService;
}
}
добавить без параметров открытый конструктор? –
@ Selman22 - это неправильный ответ. Ошибка возникает из-за того, что единство MS не «впрыскивает» что-либо в конструктор, что и должно делать (и устраняя необходимость в конструкторе без параметров). Тем не менее, у меня есть только опыт в Ninject, а не Unity, поэтому я не могу сказать, что неправильно настроено для OP – Tommy
Покажите свой класс 'AdministrationService'. – haim770