2011-10-19 2 views
1

PRISM 및 MEF를 사용하여 실버 라이트 애플리케이션을 만들었습니다. 일부 웹 서비스 또는 데이터베이스 호출을 통해 모듈 카탈로그를 채울 수 있습니까? PRISM 설명서에 표시된 예제는 Shell 프로젝트에 포함 된 XAP 파일을 통해 모듈 정보를 가져옵니다. 제 경우에는 일부 서비스에서이 목록을 가져와야합니다. IModuleCatalog를 구현하는 사용자 지정 ModuleCatalog를 만들 것을 제안하는 기사를 읽었습니다.Silverlight PRISM 맞춤 모듈 카탈로그 만들기

진행 방법에 대한 예제 또는 코드 스 니펫을 찾을 수 없습니다. 이 작업을 수행하는 방법에 대한 제안 사항이 있으십니까?

덕분에, 디팍

답변

1

이 요구 사항에 대한 해결책을 얻었다. 런타임에서 온 디맨드 모듈을로드 할 수 중위는 모듈 정보 객체는 데이터베이스 안타와를 유도 할 수있는 웹 서비스 호출을 사용하여 채울 수있다 위의 코드에 표시된 카탈로그

  ModuleInfo moduleInfo = new ModuleInfo(); 
      moduleInfo.ModuleName = item.Name; 
      moduleInfo.ModuleType = item.Type; 
      moduleInfo.Ref = item.Reference; 
      ModuleCatalog.AddModule(moduleInfo); 

항목에 추가 할 수있다 이름, 유형 및 참조 (example.xap).

이 성공적으로 모듈 카탈로그 모듈 카탈로그 그냥 중위는 버튼 클릭시에 모듈을로드 또는 이벤트가 바로 ModuleManager 전화
[Import(AllowRecomposition = false)] 
    public IModuleManager ModuleManager; 

    [Import(AllowRecomposition = false)] 
    public IModuleCatalog ModuleCatalog; 

아래처럼 해당 속성을 가져 어떤 뷰 모델에서 참조 할 수 있습니다 추가 .LoadModule (YourModuleName); 그리고 그것은 사용 가능할 것입니다.

관련 문제