2011-03-14 3 views
2

내 오차드 CMS에 대한 모듈에서 사용자 지정 INavigationProvider를 만들 싶습니다오차드에서 인터페이스 구현의 우선 순위를 설정하는 방법은 무엇입니까?

[UsedImplicitly] 
LocalizedMainMenuNavigationProvider : INavigationProvider 

하지만 내 구현은 IoC 컨테이너에서 사용하지 않는 것을 (나는 생각 AutoFac) 것, 이미 다른이 아마 때문에 모듈은 사용 된 구현을 제공합니다.

구현을 사용하기 위해 오차드를 어떻게 적용 할 수 있습니까?

감사

답변

2

메뉴가 매개 변수로 를 IEnumerable < INavigationProvider> 소요 INavigationManager에 의해 만들어집니다. 주어진 메뉴 이름에 대해 모든 제공자를 취하여 출력을 병합한다는 의미입니다. 그리고이 데이터는 최종 메뉴를 렌더링하는 데 사용됩니다.

또한 클래스가 public인지 확인하십시오. 그렇지 않으면 구현이 등록되지 않습니다.

만약 내가 당신이라면, 기본 코드를 기반으로 INavigationManager의 사용자 지정 구현을 만들 것입니다 (모든 코드를 복사/붙여 넣지 않도록). 이것은 공급자로부터 수집 된 모든 메뉴 항목을 가져 와서 지역화 할 수있는 유일한 곳입니다.

HTH