2013-04-02 1 views
0

다시 도움을 요청하십시오. 모듈 식 개념으로 응용 프로그램을 작성하고 있습니다.통합 및 프리즘 모듈성 - 부하 문제

프리즘과 유니티를 사용하고 싶습니다. Prism의 빠른 시작 예제를 살펴본 결과 MSDN에서 article을 읽었습니다. 지금이 문제가

<configuration> 
    <configSections> 
    <section name="modules" 
      type="Microsoft.Practices.Prism.Modularity.ModulesConfigurationSection, Microsoft.Practices.Prism"/> 
    </configSections> 
    <modules> 
    <module assemblyFile="Modules/MyApp.Module1.dll" 
      moduleType="MyApp.Module1.Module1Module, MyApp.Module1" 
      moduleName="Module1" /> 
    </modules> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

첫 카탈로그를 잘로드되지 않는 것입니다 :

public class Bootstrapper : UnityBootstrapper 
{ 
    protected override DependencyObject CreateShell() 
    { 
     return this.Container.Resolve<Shell>(); 
    } 

    protected override void InitializeShell() 
    { 
     base.InitializeShell(); 

     var window = this.Shell as Window; 
     if (window != null) 
     { 
      Application.Current.MainWindow = window; 
     } 
     else 
     { 
      throw new ArgumentException("The shell has to be a window."); 
     } 
    } 


    protected override IModuleCatalog CreateModuleCatalog() 
    { 
     return new ConfigurationModuleCatalog(); 
    } 
} 

내 설정 : 같은

내 실제 코드 보인다. 나를 위해 그것은로드 메서드를 호출하지 않는 것 또는 뭔가 그런 것 같습니다.

첫 번째 문제는 내 모듈의 initialize 메서드가 호출되지 않는다는 것입니다.

아무도 도와 줄 수 있습니까?

답변

2

Desktop Prism 프로젝트에서 코드를 그대로 사용했지만 예상대로 작동합니다. 응용 프로그램에서 어딘가에

, 당신은 (최소한)가 필요합니다 : 부트 스트 래퍼가 실행되는 모듈이 너무 빨리 시작시로드 될 때까지 나는이 구성 섹션에 대한 생각

var bootstrapper = new Bootstrapper(); 
bootstrapper.Run(); 

을 기본값은, 당신의 모듈을로드하고 초기화해야합니다. 이것은 정확하게 저에게 일어나는 일입니다.

이는 "초기화"내 모듈의 모습입니다 같은 :

using System; 
using System.Windows; 
using Microsoft.Practices.Prism.Modularity; 

namespace MyApp.Module1 
{ 
    class Module1Module : IModule 
    { 
     public void Initialize() 
     { 
      MessageBox.Show("Hello world!"); 
     } 
    } 
} 

그것에서 찾고 디렉토리에있는 MyApp.Module1.dll을 찾을 수 있는지 확인하는 것입니다 확인하지만, 당신이 ModuleTypeLoadingException을 얻을 것입니다 마지막으로 한가지 FileNotFoundException 첫 번째 예외 이후에는 예외입니다.

편집 : 여기에 내가 만든 테스트 솔루션에 대한 the complete source code입니다. 나는 그것이 당신을 위해서가 아니라 나를 위해 효과가있게하는 차이점을 생각할 수 없다. 확인 해봐.

+0

응답 해 주셔서 감사합니다. 죄송합니다. 내 App.xaml.cs 코드를 게시하는 것을 잊어 버렸습니다. Startup을 덮어 쓰고 부트 스트 래퍼를 시작합니다. 내 모듈 클래스는 대부분 당신과 같지만 다른 테스트 문자열이 있습니다 :-) Annd 마지막으로 파일이 올바른 폴더에 있고 아무 예외도 없습니다. 하지만 여전히 작동하지 않습니다. – Sukram

+0

@Sukram : 그것은 제가 한 것처럼 꽤 많이 있습니다. 솔루션의 소스 코드를 압축했습니다. 제가 다르게했을지도 모르는 것을 생각할 수 없기 때문입니다. – Thorarin

+0

@ Thorarin : 귀하의 코드를 주셔서 감사합니다, 나는 어떤 것에도 별다른 발견을하지 못합니다. 귀하의 클래스를 기반으로 새로운 프로젝트를 구축하고 지금은 잘 작동합니다. 도움과 코드 예제에 감사드립니다. – Sukram