2016-08-08 26 views
1

Ich möchte MEF verwenden, um Abhängigkeitsinjektion zu erreichen. Wenn Sie jedoch versuchen, alle verschiedenen DLL-Dateien zu laden, wird immer eine system.Reflection.ReflectionTypeLoadException ausgeführt: Die Klassen im Modul können nicht geladen werden. Dies tritt auf, wenn Sie versuchen, "Microsoft.AspNet.Identity.Owin.dll" zu laden.C# MEF Dependency Injection: Die Klassen im Modul können nicht geladen werden

Ich versuche, dies auf einem Mac zu tun, die Mono-Compiler und den Zielrahmen festgelegt auf: .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

Vermutlich fehlt Ihnen eine Abhängigkeit der 'Microsoft.AspNet.Identity.Owin.dll' Versammlung. Stellen Sie sicher, dass alle Abhängigkeiten in demselben Ordner vorhanden sind. (Oder vielleicht laden Sie es aus dem GAC, wenn es dort existiert ... nicht sicher, wie man das mit MEF tut.) – wablab

+0

@wablab Danke, ich habe alle Abhängigkeiten zu den Referenzen hinzugefügt und das hat das Problem gelöst. – Jeroen

+0

Ich werde es als eine Antwort hinzufügen, so dass Sie es akzeptieren können, um die Frage zu schließen. Vielen Dank! – wablab

Antwort

0

Sie Vermutlich fehlt eine Abhängigkeit der Microsoft.AspNet.Identity.Owin.dll Baugruppe. Stellen Sie sicher, dass alle Abhängigkeiten in demselben Ordner vorhanden sind. (Oder vielleicht laden Sie es aus dem GAC, wenn es dort existiert ... nicht sicher, wie man das mit MEF tut.)