我开始使用prism + unity DI。到目前为止,我有两个问题和疑问。
1。问题/问题
我想将AssemblyInformation Title用作ModuleAttribute.ModelName。
问题: 这不起作用:
[Module(ModuleName = AssemblyName.GetAssemblyName(Assembly.GetExecutingAssembly().FullName).Name)]
这很有效。
[Module(ModuleName ="Module1")]
问题:
是否有可能将AssemblyInformation.Title用作ModuleAttribute.Modulename?
2。问题/问题
我想从Directory my Modules按需加载,但只能在模块名称中有特殊前缀的模块。
问题:
如果我检查我的ModuleCatalog,那么在我初始化模块之前它仍然是空的。
问题:
是否可以在模块初始化之前检查模块的名称,因为我不想在模块内部执行Initialize()方法。
我的引导程序:
protected override IModuleCatalog CreateModuleCatalog()
{
return new DirectoryModuleCatalog() { ModulePath = @".\Modules" };
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
}
protected override void InitializeModules()
{
ModuleCatalog moduleCatalog = (ModuleCatalog) this.ModuleCatalog;
// Here I would like to discover my modules with special modulename prefix.
//If the prefix is not found, then I dont want to init the module.
try
{
base.InitializeModules();
}
catch (DuplicateModuleException e)
{
}
}
模块:
[Module(ModuleName = "MyPrefix-Module1")]
public class PrismModule1Module : IModule
{
IRegionManager _regionManager;
public PrismModule1Module(IRegionManager regionManager)
{
_regionManager = regionManager;
}
public void Initialize()
{
Debug.WriteLine("Module init");
}
}
答案 0 :(得分:1)
但是,这可以通过覆盖默认实现来实现。