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

断点信息异常堆栈

c# MEF依赖注入:模块中的类不能被加载

您可能错过了Microsoft.AspNet.Identity.Owin.dll程序集的依赖项。确保它的所有依赖项都存在于同一个文件夹中。(或者从GAC加载它,如果它存在的话……但我不确定如何使用MEF。)