Autofac不会从外部DLL解析类

时间:2015-10-03 03:26:05

标签: c# dll autofac

我正在尝试创建一个使用Autofac并加载外部dll的应用程序。 如果DLL位于同一文件夹中并且程序从同一文件夹运行,则以下代码有效:

builder.RegisterAssemblyTypes(assemblies.ToArray()).
            Where(t => typeof(IImageConverter).IsAssignableFrom(t)).
            InstancePerLifetimeScope().AsImplementedInterfaces();

现在,如果我尝试从其他位置运行程序,但将工作目录设置为DLL所在的目录,则autofac会查找并加载DLL,但不解析它以运行它:

using (var scope = _container.BeginLifetimeScope())
{
    var processors = scope.Resolve<IEnumerable<IImageConverter>>();
    foreach (var process in processors)
        process.Process();
}

这是我唯一的autofac系列。接口在共享库中定义,每个模块默认实现它。我错过了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

取决于分配的值assemblies。 Autofac不会加载DLL,它只扫描已加载的程序集。

阅读Dynamicic Module Loading以确定如何加载外部DLL。