2

OrchardCMSのモジュールにカスタムINavigationProviderを作成したいと思います。

[UsedImplicitly]
LocalizedMainMenuNavigationProvider : INavigationProvider

しかし、私の実装はIoCコンテナ(AutoFacだと思います)では使用されていないようです。おそらく、使用される実装を提供する別のモジュールがすでにインストールされているためです。

Orchardに実装を使用するように強制するにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

メニューは、IEnumerable<INavigationProvider>をパラメーターとして受け取るINavigationManagerによって作成されます。これは、特定のメニュー名のすべてのプロバイダーを取得し、それらの出力をマージすることを意味します。そして、このデータは最終メニューをレンダリングするために使用されます。

また、クラスがパブリックであることを確認してください。パブリックでない場合、実装は登録されません。

私があなたなら、デフォルトの実装に基づいてINavigationManagerのカスタム実装を作成したいと思います(すべてのコードをコピーして貼り付けないようにします)。これは、プロバイダーからすべてのメニュー項目を収集し、それらをローカライズできる唯一の場所です。

HTH

于 2011-03-14T17:54:05.223 に答える