【问题标题】:Why are ModuleAttribute and ModuleDependencyAttribute not working in my WPF Prism app?为什么 ModuleAttribute 和 ModuleDependencyAttribute 在我的 WPF Prism 应用程序中不起作用?
【发布时间】:2017-06-19 22:43:15
【问题描述】:

我有两个模块:

[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 时仍然需要复制相同的信息,这些属性是什么?

【问题讨论】:

  • @R.Richards FM 无法回答我的问题。它显示使用的属性与我使用的完全一样,但是 FM 显示的内容不起作用,因此我在阅读 FM 后问了这个 F 问题。
  • 那么一些 F 代码,也许? github.com/PrismLibrary/Prism/blob/…。向着底部。你可能已经发现了这个。也许这只是在这种情况下使用。
  • 啊哈!非常感谢,@R.Richards!我没有使用DirectoryModuleCatalog,只是一个普通的ModuleCatalog,并且查看该来源显示属性根本没有使用。我会向 MS 提出这个问题。
  • 您可能只想在此处记录问题:github.com/PrismLibrary/Prism/issues。祝你好运!

标签: c# wpf module prism prism-6


【解决方案1】:

在 R. Richards 的慷慨帮助下,在 OP cmets 中查看 Prism 源代码,我发现这些属性仅用于模块发现,特别是 DirectoryModuleCatalog,但我冒险猜测其他模块发现也是如此。有了这些,您就没有添加属性携带的信息的钩子了,但是通过直接的模块注册,在一个普通的ModuleCatalog 中,他们自私地把这一切都留给了你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多