我有两个模块:
[Module(ModuleName = ModuleNames.Common)]
public class CommonModule: BaseModule
和
[ModuleDependency(ModuleNames.Common)]
[Module(ModuleName = ModuleNames.Branch, OnDemand = true)]
public class BranchModule : BaseModule
然后我在Bootstrapper.ConfigureModuleCatalog
:
ctlg.AddModule(ModuleNames.Common, typeof(CommonModule).AssemblyQualifiedName, InitializationMode.WhenAvailable);
ctlg.AddModule(typeof(BranchModule), InitializationMode.OnDemand);
当我检查模块目录时,只正确配置了CommonModule
,因为我在AddModule
中指定了所有模块属性,而不是因为它的[Module(ModuleName = ModuleNames.Common)]
属性。这些属性似乎明显被忽略,因为尽管BranchModule
有两个属性,但我没有在AddModule
中提供该信息,但在目录中,此模块的名称是其类型名称,它没有依赖关系。
如果在调用AddModule
时仍需要复制相同的信息,这些属性是什么?
答案 0 :(得分:0)
在R. Richards的亲切帮助下,在OP评论中,查看Prism源代码,我发现这些属性仅用于模块发现,尤其是DirectoryModuleCatalog
,但我猜测与其他模块发现一样。有了这些,您就无法添加属性所携带的信息,但通过直接模块注册,在简单的ModuleCatalog
中,他们自私地将这一切留给您。