2016-08-08 3 views
1

종속성 주입을 위해 MEF를 사용하고 싶습니다. 그러나 모든 다른 .dll 파일을로드하려고하면 항상 System.Reflection.ReflectionTypeLoadException로 실행됩니다. 모듈의 클래스를로드 할 수 없습니다. "Microsoft.AspNet.Identity.Owin.dll"을로드하려고 할 때 발생합니다.C# MEF 종속성 삽입 : 모듈의 클래스를로드 할 수 없습니다.

내가 설정 모노 컴파일러와 대상 프레임 워크를 사용하여 Mac에서이 작업을 수행하기 위해 노력하고있어 : .NET Framework를 4.5.2

#region Constructor 
    public ModuleConfigurationCatalog() 
    { 
     var assemblyUri = new Uri(Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath)); 
     var assemblyDir = assemblyUri.LocalPath; 

     var allFiles = Directory.EnumerateFiles(assemblyDir, "*.*", SearchOption.AllDirectories); 
     var assemblies = allFiles.Where(f => f.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || f.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)).Distinct(); 

     _catalog = new AggregateCatalog(); 

     foreach (var assembly in assemblies) 
     { 
      var assemblyCatalog = new AssemblyCatalog(assembly); 

      if (assemblyCatalog.Parts.ToList().Count > 0) 
      { 
       _catalog.Catalogs.Add(assemblyCatalog); 
      } 
     } 
    } 
    #endregion 

breakpoint information

Stacktrace

+0

'Microsoft.AspNet.Identity.Owin.dll' 파일의 종속성이 누락 된 것 같습니다. 어셈블리. 모든 종속성이 동일한 폴더에 있는지 확인하십시오. (또는 GAC에서로드하는 경우 GAC에서로드 할 수 있습니다. MEF에서는이를 수행하는 방법을 잘 모릅니다.) – wablab

+0

@wablab 감사합니다. 참조에 대한 모든 종속성을 추가하고 문제를 해결했습니다. – Jeroen

+0

질문을 마무리하기 위해 답변으로 추가하겠습니다. 감사! – wablab

답변

0

당신 아마 Microsoft.AspNet.Identity.Owin.dll 어셈블리의 종속성이 누락되었습니다. 모든 종속성이 동일한 폴더에 있는지 확인하십시오. (또는 GAC에서로드하는 경우 GAC에서로드하십시오 ... MEF를 사용하여 수행하는 방법을 잘 모르겠습니다.)

관련 문제