2011-11-09 4 views
2

は、基本的には...PRISMのCreateModuleCatalog()とConfigureModuleCatalog()の違いは何ですか?

protected override IModuleCatalog CreateModuleCatalog() 
    { 
     var catalog = base.CreateModuleCatalog(); 

     var moduleInfo = new ModuleInfo("HelloWorldModule", "Testing.HelloWorldModule")); 
     catalog.AddModule(moduleInfo); 

     return catalog; 
    } 

    protected override void ConfigureModuleCatalog() 
    { 
     ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog; 
     moduleCatalog.AddModule(typeof(Testing.HelloWorldModule)); 
    } 

はどちらも、ここで同じことをやっているように見えるので、本当の違いは何ですか?私はあなたがであることを尋ねていると思います。とは異なります(明らかにコードを移動できるので)。

答えて

0

PRISMs runメソッドは、最初にCreateModuleCatalogを呼び出し、その戻り値をBootStrapper.ModuleCatalogに割り当てます。だから実際にそこにModuleCatalogを作成する必要があります。設定を行うにはどちらの方法も使用できますが、唯一の違いは、ログに潜在的な例外が表示される点です。たとえばMefBootstrapper.Runの関連コードは次のとおりです。

 this.Logger.Log(Resources.CreatingModuleCatalog, Category.Debug, Priority.Low); 
     this.ModuleCatalog = this.CreateModuleCatalog(); 
     if (this.ModuleCatalog == null) 
     { 
      throw new InvalidOperationException(Resources.NullModuleCatalogException); 
     } 

     this.Logger.Log(Resources.ConfiguringModuleCatalog, Category.Debug, Priority.Low); 
     this.ConfigureModuleCatalog(); 
関連する問題