저는 Create composite modular UI application in WPF using MEF and PRISM 문서의 지침에 따라 작고 단순한 (당분간) 모듈 식 응용 프로그램을 만들고 있습니다. 지금까지 두 개의 지역, Bootstrapper
클래스 및 두 개의 모듈 프로젝트 인 ModuleA와 ModuleC (자체 만 내보내는)가있는 메인 창이 있습니다. 또한 그들은 각각의 장소 AA보기 메인 윈도우의 지역 중 하나 (A UserControl
)는, 예를 들면 :MEF 기반 모듈 식 응용 프로그램에서 모듈 기능을 어떻게 노출합니까?
[ModuleExport(typeof(ModuleC))]
public class ModuleC: IModule
{
public void Initialize()
{
IRegionManager regionManager = (IRegionManager)ServiceLocator.Current.GetInstance(typeof(IRegionManager));
regionManager.Regions["Region2"].Add(new MoneyUserControl());
}
}
내 비전은 현재의 높은에서 사용 가져옵니다 MainWindow
에 하나 개의 큰 UI 영역을 가지고있다 레벨 앱 기능이 사용되고 있으며이 기능은 가져온 모듈입니다. 이 모듈은 공통점이 많으며 현재 모 놀리 식 응용 프로그램의 일부분이지만 응용 프로그램의 각 기능을 모듈로 가져 오는 동안 기본적으로 기본 서비스를 제공하는 프레임 (MainWindow
)을 위해 노력했습니다.
활성 모듈이 메뉴 항목 (명령)을 기본 창에 제공하려고합니다. 이 작업을 '수동'으로 수행하는 것은 매우 쉽습니다. IModuleWithMenu
인터페이스를 사용하고 메뉴를 통합하거나 기본 창에서 'IMenuHost` 인터페이스를 사용하고 메뉴 모듈에 메뉴 명령을 넣도록 기본 창 쿼리를 가지고 있습니다.
그러나 필자는 반드시 있어야한다고 생각합니다. 이미 MEF를 사용하고 있기 때문에 더 나은 방법을 찾고로드 된 모듈에 대한 내보내기 및 가져 오기 카탈로그를 보유하고 있어야합니다. 분명히 나는 수출을 질의하고 그것들을 명령어로 걸러 내고 메뉴 나 다른 형태의 명령어 호출에 연결할 수있다. 그러나 MEF는 이미 만든 것과 같은 것을 공급하지 않는다. 최소, 따라서 버그의 위험이 있습니다.
덧붙여 말하지만 추가 질문 : 누구든지 MEF (주로 WPF에서,하지만 다른 사람들은 WPF 용으로 adap 할 수 있음)를 사용하여 복합 애플 리케이션을 구축 할 때 정말 유용한 자습서 문제의 사본 또는 링크가 있어야합니다. 내가 다룬 기사는 모듈, 카탈로그 및 MEF 자체에 대한 작은 소개입니다. 나는 정말로, 정말로 기술적이며 깊이있는 것을 원합니다. 책 구입은 순서대로 이루어질 수도 있습니다.
좋은 답변에 감사드립니다. 그것은 나를 더 많은 독서와 학습으로 이끈다. – ProfK