Как установить приоритет реализации интерфейса в Orchard? - PullRequest
2 голосов
/ 14 марта 2011

Я хотел бы создать собственный модуль INavigationProvider в моем модуле для Orchard CMS:

[UsedImplicitly]
LocalizedMainMenuNavigationProvider : INavigationProvider

Но похоже, что моя реализация не используется контейнером IoC (я думаю, что AutoFac), возможно потому, что уже установлен другой модуль, который обеспечивает реализацию, которая используется.

Как я могу заставить Orchard использовать мою реализацию?

Спасибо

1 Ответ

2 голосов
/ 14 марта 2011

Меню создается INavigationManager , который принимает IEnumerable в качестве параметра.Это означает, что он берет всех провайдеров для данного имени меню и объединяет их результаты.И эти данные используются для визуализации окончательного меню.

Также убедитесь, что ваш класс public - иначе ваша реализация не будет зарегистрирована.

Если бы я былВы бы предпочли создать пользовательскую реализацию INavigationManager на основе стандартной (чтобы не копировать / вставлять весь код).Это единственное место, где вы получаете все пункты меню, собранные у провайдеров, и можете их локализовать.

HTH

...