В моем приложении призмы я получаю сообщение об ошибке Ошибка активации произошла при попытке получить экземпляр типа 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());
}