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
'Microsoft.AspNet.Identity.Owin.dll' 파일의 종속성이 누락 된 것 같습니다. 어셈블리. 모든 종속성이 동일한 폴더에 있는지 확인하십시오. (또는 GAC에서로드하는 경우 GAC에서로드 할 수 있습니다. MEF에서는이를 수행하는 방법을 잘 모릅니다.) – wablab
@wablab 감사합니다. 참조에 대한 모든 종속성을 추가하고 문제를 해결했습니다. – Jeroen
질문을 마무리하기 위해 답변으로 추가하겠습니다. 감사! – wablab