Модули приложения призмы предназначены для модуляции базы кода.Они не имеют ничего общего с представлениями или моделями представлений, а скорее делят приложение на компоненты, которые можно независимо разрабатывать, тестировать и заменять.Как вы разбили свое приложение, зависит только от вас.
Возможно, вам следует ознакомиться с главой документации о модульности ...
Редактировать: о конкретных вопросах:
Как получить доступ к реализации функциональности IServiceA (определенной в модуле) в PageAViewModel, которую я забыл сделать?
Вы создаете параметр конструктора типа IService
и prism предоставит вам зарегистрированную реализацию:
internal class PageAViewModel
{
public PageAViewModel( IService service )
{
service.DoStuff();
}
}
Как мне управлять жизненным циклом ModuleA / ServiceA, если я хочу использовать эту функцию в ряде разных стран без загрузкимодуль каждый раз
Вы не можете и не должны управлять временем жизни ModuleA
, призма об этом позаботится.Что касается ServiceA
, вы выбрали время жизни при регистрации:
containerRegistry.Register<IService, ServiceA>()
создает новый экземпляр службы для каждой страницы containerRegistry.RegisterSingleton<IService, ServiceA>()
создает один экземпляр службы для всехстраницы