Функциональность модулей Prism в заинтересованных классах (Xamarin Foirms + Prism) - PullRequest
0 голосов
/ 27 января 2019

Добрый день!


ОБНОВЛЕНИЕ

Я не понимаю, как получить доступ к функциональности модуля Prism изкласс с использованием логики модуля.

Вопросы:

  • Как получить доступ к реализации функциональности IServiceA (определенной в модуле)в PageAViewModel, что я забыл сделать?

  • Как я могу управлять жизнью ModuleA / ServiceA, если я хочу использовать эту функциональность в ряде разных стран, не загружая модуль каждыйвремя (сценарий - я вызываю ModuleA / ServiceA при загрузке приложения, использую его на PageA / PageB / PageC, после использования я его выгружаю).

Спасибо всем за ответы!Хорошего дня!/ Извините за гугл переводчик /

Logic

1 Ответ

0 голосов
/ 27 января 2019

Модули приложения призмы предназначены для модуляции базы кода.Они не имеют ничего общего с представлениями или моделями представлений, а скорее делят приложение на компоненты, которые можно независимо разрабатывать, тестировать и заменять.Как вы разбили свое приложение, зависит только от вас.

Возможно, вам следует ознакомиться с главой документации о модульности ...

Редактировать: о конкретных вопросах:

Как получить доступ к реализации функциональности 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>() создает один экземпляр службы для всехстраницы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...