2017-02-01 26 views
1

私は、プロジェクト「モジュール性を統一」に似たものをコーディングしようとしています。私は2つのモジュールを構築した:モジュールA(コードを介してロード)とモジュールD(ディレクトリからロード)。両方とも正常にロードされます。私が参考に取っていプリズムのモジュール依存関係

リンクはhttps://msdn.microsoft.com/en-us/library/ff921068(v=pandp.40).aspx ソースコードは、上記のリンク

から撮影することができますですが、私は、依存関係を設定しようとすると、それが働いていません。私は本当に依存関係がこのプロジェクトで言及されているのか分かりません。 (私はModuleAクラスの属性として依存関係を設定し、モジュール化は、ビルド後にコピーされます)これが私の実装です:

Bootstrapper.cs

protected override IModuleCatalog CreateModuleCatalog() 
{ 
    return new AggregateModuleCatalog(); 
} 

protected override void ConfigureModuleCatalog() 
{ 
    base.ConfigureModuleCatalog(); 

    Type moduleAType = typeof(ModuleAModule); 
    ModuleCatalog.AddModule(new ModuleInfo() 
    { 
     ModuleName = ModuleNames.ModuleA, 
     ModuleType = moduleAType.AssemblyQualifiedName 
    });  

    DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog() { ModulePath = @".\Modules" }; 
    ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog); 
} 

protected override void ConfigureContainer() 
{ 
    base.ConfigureContainer(); 

    this.RegisterTypeIfMissing(typeof(IModuleTracker), typeof(ModuleTracker), true); 
} 

ModuleA.cs

[Module(ModuleName = ModuleNames.ModuleA)] 
public class ModuleAModule : IModule 
{ 
    private ILoggerFacade _logger; 
    private IModuleTracker _moduleTracker; 

    public ModuleAModule(ILoggerFacade logger, IModuleTracker moduleTracker) 
    { 
     _logger = logger; 
     _moduleTracker = moduleTracker; 

     _moduleTracker.ModuleConstructed("ModuleA"); 
    } 

    public void Initialize() 
    { 
     _logger.Log("ModuleA demonstrates logging during Initialize().", Category.Info, Priority.Medium); 

     _moduleTracker.ModuleInitialized("ModuleA"); 
    } 
} 

ModuleD.cs

[Module(ModuleName = ModuleNames.ModuleD)] 
public class ModuleDModule : IModule 
{ 
    private ILoggerFacade _logger; 
    private IModuleTracker _moduleTracker; 

    public ModuleDModule(ILoggerFacade logger, IModuleTracker moduleTracker) 
    { 
     _logger = logger; 
     _moduleTracker = moduleTracker; 

     _moduleTracker.ModuleConstructed("ModuleD"); 
    } 

    public void Initialize() 
    { 
     _moduleTracker.ModuleInitialized("ModuleD"); 
    } 
} 
+0

**まだ回答なし、この上で私を助けてください。** – Deepanshu

答えて

0

ModuleA.csにModuleDependency属性を追加します。

[Module(ModuleName = ModuleNames.ModuleA)]  
[ModuleDependency(ModuleNames.ModuleD)] 
public class ModuleAModule : IModule 
{ 
    private ILoggerFacade _logger; 
    private IModuleTracker _moduleTracker; 

    public ModuleAModule(ILoggerFacade logger, IModuleTracker moduleTracker) 
    { 
     _logger = logger; 
     _moduleTracker = moduleTracker; 

     _moduleTracker.ModuleConstructed("ModuleA"); 
    } 

    public void Initialize() 
    { 
     _logger.Log("ModuleA demonstrates logging during Initialize().", Category.Info, Priority.Medium); 

     _moduleTracker.ModuleInitialized("ModuleA"); 
    } 
} 
+0

あなたの答えが100%正しいがそのリンクを移動した場合、それはまた変更、100%無駄に になるかもしれませんが、別の1またはにマージメインサイト が消えるだけです。**: - (**したがって、あなたの答えを編集してください。 あなたの答えにリンクから関連するステップをコピーして、 あなたの生涯の100%このサイト! **; - )**あなたはいつでも 素材の のソースとして答えの一番下にリンクを残すことができます。 –

関連する問題