title: module dependencies in prism wpf
body: <p>i am trying to code something similar to the project 'Modularity with unity'.
  i built 2 modules: Module A (loaded via code) and Module D (loaded from directory).
  both are loaded successfully.</p>
  
  <p>but when i try to set dependency it's not working.
  i can't really figure out where the dependency is mentioned in this project.
  (i set the dependency as attribute in ModuleA class, moduleD is copied after build)
  this is my implementation:</p>
  
  <p>Bootstrapper.cs</p>
  
  <pre><code>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);
  }
  </code></pre>
  
  <p>ModuleA.cs</p>
  
  <pre><code>[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");
      }
  }
  </code></pre>
  
  <p>ModuleD.cs</p>
  
  <pre><code>[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");
      }
  }
  </code></pre>