В чем разница между этими двумя способами загрузки модулей в Prism? - PullRequest
2 голосов
/ 17 июля 2009

Может кто-нибудь объяснить разницу между таким образом загрузки модулей в Prism:

protected override void InitializeModules()
{
    IModule customerModule = Container.Resolve<CustomerModule.CustomerModule>();
    IModule helloWorldModule = Container.Resolve<HelloWorldModule.HelloWorldModule>();

    customerModule.Initialize();
    helloWorldModule.Initialize();
}

и таким образом :

protected override IModuleCatalog GetModuleCatalog()
{
    ModuleCatalog catalog = new ModuleCatalog()
        .AddModule(typeof(CustomerModule.CustomerModule))
        .AddModule(typeof(HelloWorldModule.HelloWorldModule));
    return catalog;
}

Я видел оба способа в демонстрациях, но, насколько я могу судить, они делают одно и то же , оба они, похоже, передают контейнер и regionManager, которые мне нужны в моих модулях:

public class CustomerModule : IModule
{
    public IUnityContainer Container { get; set; }
    public IRegionManager RegionManager { get; set; }

    public CustomerModule(IUnityContainer container, IRegionManager regionManager)
    {
        Container = container;
        RegionManager = regionManager;
    }

    public void Initialize()
    {
        RegionManager.RegisterViewWithRegion("MainRegion", typeof(Views.CustomerView));
    }

}

1 Ответ

3 голосов
/ 17 июля 2009

Оба IModuleCatalog GetModuleCatalog () и InitializeModules из UnityBootstrapper.

  • GetModuleCatalog предназначен для настройки того, как вы хотите загрузить модуль. И InitializeModules для инициализации модуля.

  • GetModulecatalog будет запущен перед вызовом инициализации модуля.

  • Вам не нужно переопределять InitializeModules для большинства сценариев, но вам нужно будет сообщить UnityBootstrapper, как вы хотите загружать свои модули (на основе app.config, Directory Lookup или Xap Dynamic Loader и т.д.)

Надеюсь, это поможет.

...