2009-07-17 11 views
2

誰もがこのようプリズムでロードモジュールのの違いを説明することができます。このようプリズムにモジュールをロードする2つの方法の違いは何ですか?

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

プリズムv4では、GetModuleCatalog()の名前がCreateModuleCatalog()に変更されました。 – Jedidja

答えて

3

IModuleCatalog GetModuleCatalog()とInitializeModulesはどちらもUnityBootstrapperからのものです。

  • GetModuleCatalogは、モジュールのロード方法を設定します。 InitializeModulesはモジュールを初期化するためのものです。

  • GetModulecatalogは、モジュールの初期化を呼び出す前に起動されます。

  • ほとんどのシナリオでInitializeModulesをオーバーライドする必要はありませんが、モジュールをどのようにロードするかをUnityBootstrapperに伝える必要があります(app.config、ディレクトリルックアップ、Xap Dynamic Loaderなどに基づいています)。 )

希望します。

関連する問題