В моем приложении призмы я получаю ошибку Произошла ошибка активации при попытке получить экземпляр типа CustomerModule, ключ \ "\" .
Это связано с тем, что мой модуль клиентов Я пытаюсь внедрить "menuManager" типа IMenuManager :
namespace CustomerModule
{
public class CustomerModule : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
private readonly IMenuManager menuManager;
public CustomerModule(IUnityContainer container,
IRegionManager regionManager,
IMenuManager menuManager)
{
this.container = container;
this.regionManager = regionManager;
this.menuManager = menuManager;
}
public void Initialize()
{
container.RegisterType<IMenuManager, MenuManager>(new ContainerControlledLifetimeManager());
...
Однако, если я изменю конструктор CustomerModule, чтобы внедрить тип вместо интерфейса, , тогда он будет работать :
public CustomerModule(IUnityContainer container,
IRegionManager regionManager,
MenuManager menuManager)
Так, где мне нужно зарегистрировать мой MenuManager как реализующий IMenuManager? Кажется, что регистрировать его в методе Initialize CustomerModule слишком поздно.
ОТВЕТ:
Я поместил его в ConfigureContainer (), и он работал нормально, обязательно оставьте в "base.ConfigureContainer ()":
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<MenuManager>(new ContainerControlledLifetimeManager());
}