prism wpf中的模块依赖关系
我正在尝试编写类似于“模块化与统一”项目的代码。 我构建了两个模块:模块A(通过代码加载)和模块D(从目录加载)。 两者都已成功加载 但当我试图设置依赖项时,它不起作用。 我真的不知道这个项目中提到了依赖关系。 (我在ModuleA类中将依赖项设置为属性,moduleD在构建后复制) 这是我的实现: Bootstrapper.csprism wpf中的模块依赖关系,wpf,prism,unity-container,modularity,Wpf,Prism,Unity Container,Modularity,我正在尝试编写类似于“模块化与统一”项目的代码。 我构建了两个模块:模块A(通过代码加载)和模块D(从目录加载)。 两者都已成功加载 但当我试图设置依赖项时,它不起作用。 我真的不知道这个项目中提到了依赖关系。 (我在ModuleA类中将依赖项设置为属性,moduleD在构建后复制) 这是我的实现: Bootstrapper.cs protected override IModuleCatalog CreateModuleCatalog() { return new AggregateM
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);
}
模数a.cs
[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");
}
}
模块化
[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");
}
}
也许这与模块的加载顺序有关?据我所见,模块A在被模块化之前就被加载了,而模块A有一个依赖项。 我不知道这是否对你有帮助但那是我的第一个想法。。 您收到了哪条错误消息