Я использую Prism и Unity.
У меня есть загрузчик :
protected override IModuleCatalog GetModuleCatalog()
{
ModuleCatalog catalog = new ModuleCatalog()
.AddModule(typeof(CustomerModule.CustomerModule))
.AddModule(typeof(EmployeesModule.EmployeesModule))
.AddModule(typeof(MenuModule.MenuModule));
return catalog;
}
А мой CustomerModule получает введенный MenuManager и добавляет к нему пункты меню:
public void Initialize()
{
menuManager.MenuItems.Add("Customers");
menuManager.MenuItems.Add("Other Customers");
}
Но когда мой MainMenuPresenter объект также получает инъекцию MenuManager, это не тот же объект:
public MainMenuPresenter(MainMenuView view, MenuManager menuManager)
{
View = view;
View.DataContext = this;
foreach (string menuItemTitle in menuManager.MenuItems)
{
MenuItems.Add(menuItemTitle);
}
}
Как мне сказать Prism / Unity, что я хочу, чтобы введенный MenuManager был Singleton, чтобы один и тот же объект вводился в каждый из моих модулей и объектов?