2

我想在我的 Orchard CMS 模块中创建一个自定义 INavigationProvider:

[UsedImplicitly]
LocalizedMainMenuNavigationProvider : INavigationProvider

但似乎 IoC 容器(我认为是 AutoFac)没有使用我的实现,可能是因为已经安装了另一个模块来提供使用的实现。

如何强制 Orchard 使用我的实现?

谢谢

4

1 回答 1

2

菜单由INavigationManager 构建,它采用IEnumerable< INavigationProvider>作为参数。这意味着它获取给定菜单名称的所有提供程序并合并它们的输出。这些数据用于渲染最终菜单。

还要确保您的课程是公开的 - 否则您的实施将不会被注册。

如果我是你,我宁愿创建一个基于默认实现的 INavigationManager 的自定义实现(所以不要复制/粘贴所有代码)。这是您从提供商处收集所有菜单项并能够对其进行本地化的唯一地方。

高温高压

于 2011-03-14T17:54:05.223 回答