В этот вопрос о переполнении стека Я узнал, что Призма / Единство не так отделены, как я думал , например. если у меня есть этот класс, который получает menuManager, вставленный в его конструктор, то я должен убедиться, , что этот класс существует где-то (я думал, что вы можете просто извлечь DLL, содержащую класс и контейнер будут иметь с ним дело, например, введя на его месте нуль):
public class EmployeesPresenter
{
public EmployeesPresenter(IMenuManager menuManager)
{
}
}
Но я могу справиться с этим: приложение не может работать без MenuModule (или, как было предложено, у меня может быть NullMenuModule , который ничего не делает, но удерживает приложение от взлома).
Однако приложение, которое я создаю, будет иметь класс MenuManager в MenuModule, и каждый модуль должен будет регистрировать все, что он хочет иметь в меню, с помощью MenuManager. Тем не менее, я хочу иметь возможность поменять MenuModules например. иметь модуль InfragisticsMenuMou и иметь модуль TelerikMenu и т. д.
Однако, когда я нахожусь в, например, модуль Customers, для того чтобы использовать TelerikMenuModule, мне нужно сослаться на него . И когда я хочу использовать InfragisticsMenuModule, мне нужно сослаться на это.
Так как я смогу "горячо заменить" TelerikMenuModule с InfragisticsMenuModule без перекомпиляции всех моих модулей с новыми ссылками , например, Я хочу заменить это:
Application.exe
Customers.dll
TelerikMenuModule.dll
с этим:
Application.exe
Customers.dll
InfragisticsMenuModule.dll
и просто сможете перезапустить приложение, и оно запускается с новым InfragisticsMenuModule.dll, а не жалуется, что TelerikMenuModule.dll больше не существует .