使用autofac初始化类型时,请注册ASP.NET MVC 3控制器

本文关键字:NET ASP MVC 控制器 注册 初始化 autofac 类型 使用 | 更新日期: 2023-09-27 18:20:00

我正在使用Autofac注册我的asp.net mvc 3 web应用程序的控制器。现在我必须加载包含控制器(插件)的DLL,然后我将注册类型。现在,问题来了,因为我有一个PluginLoader类,它将处理从程序集加载到类型注册的所有内容。此类也在autofac容器中注册。问题是,如果在解决它之前我必须构建容器,那么我如何使用该类?我的意思是,我构建了autofac容器,解析了PluginLoader类,我调用了扫描程序集并找到控制器的方法,但容器已经构建好了。。。

编辑1

PluginManager是管理所有插件的基类。它依赖于PluginLoader类,该类基本上使用Assembly.Load方法加载程序集,并扫描DLL以搜索MVC控制器。这些类在autofac容器中注册为singleton。现在,PluginLoader也应该向autofac注册控制器。但在调用执行此操作的方法之前,我必须从容器中解析PluginManager类,这就是问题所在。这似乎是一种"循环依赖"或类似的东西。在我解析PluginManager时,容器已经构建

使用autofac初始化类型时,请注册ASP.NET MVC 3控制器

PluginLoader听起来像是引导程序的一部分-尝试从Module(一个Autofac类)派生PluginLoader,然后在容器中注册模块。该模块可以在其Load()方法中封装插件加载逻辑。