2010-01-14 4 views
1

IoC/플러그인 프레임 워크를 기반으로 구축 된 응용 프로그램에서 일반적으로 보인 것 중 하나는 동적으로로드 된 플러그인의 메뉴 또는 툴바에 명령을 추가하는 것입니다. 예를 들어, 응용 프로그램의 기본 플러그인은 작업 영역의 특정 항목에 대한 상황에 맞는 메뉴에 나타나는 "새로 만들기, 열기 및 저장"과 같은 작업을 제공합니다. 새로운 플러그인은 "Mail, Post, Encrypt"명령을 추가 할 수 있지만 "New, Open, Save"와 관련된 명령은 어디에 있습니까?IoC/플러그인 프레임 워크로 주입 된 메뉴 항목을 정렬하는 가장 좋은 방법

IoC를 통해 구성 요소를로드하는 응용 프로그램은 주입 된 항목에 순서를 지정할 수 있습니까?

  • 항목을 그룹화하거나 주문하는 방법에 대한 힌트를 제공하는 플러그인의 메타 데이터가 필요합니까?
  • 이전에 알려진 메뉴 이름 (또는 ID)의 구성 파일을 사용하여 주문을 정의합니까 (저에게 조금 약한 것처럼 보입니까)?
  • 또는 "알 수없는"플러그인이 2 등급 시민으로 취급되며 항상 하위 메뉴로 덤핑됩니까? (필자는 답변에서 뵙기를 희망합니다) 내가 상상조차 한 적이
  • 뭔가

답변

1

당신은 basicly 주문에 대한 항목을 요청할 수 있습니다.

당신이 정의 할 수있는 블록을 정의하는 것을 의미합니다 (1. 신규 및 개방, 2. 저장, 3. 인쇄, 종료). 이제 플러그인이 앱에 블록을 선호한다고 알릴 수 있습니다. 예 : 하나의 플러그인은 인쇄 기능을 추가하여 블록 3에 대해 미리 지정해줍니다.

0

다른 프레임 워크에서는 이것이 어떻게 수행되는지 모르지만 Mono.Addins가 어떻게 지원하는지 설명 할 수 있습니다. Mono.Addins를 사용하면 메뉴의 확장 점을 선언 할 수 있습니다. 추가 기능은 명령을 등록 할 수 있습니다. 트릭은 확장 (이 경우 명령)이 식별자를 가질 수 있고 확장을 등록 할 때 다른 확장의 식별자를 삽입하기 전 또는 그 앞에 지정할 수 있다는 것입니다.

관련 문제