c# MEF依赖注入:模块中的类不能被加载
本文关键字:不能 加载 模块 MEF 依赖 注入 | 更新日期: 2023-09-27 18:01:18
我想使用MEF来实现依赖注入。然而,当试图加载所有不同的.dll文件时,它总是会遇到system . reflection . reflectiontypeloadexcexception:模块中的类无法加载。当尝试加载"Microsoft.AspNet.Identity.Owin.dll"时,会发生这种情况。
我正在尝试在mac上这样做,使用mono编译器和目标框架设置在:.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加载它,如果它存在的话……但我不确定如何使用MEF。)