2012-01-10 33 views
0

我正在使用Autofac来注册我的asp.net mvc 3 web应用程序的控制器。目前我必须加载包含控制器(插件)的DLL,之后我将注册这些类型。现在,问题来自于我有一个PluginLoader类,它可以处理从程序集加载到类型注册的所有东西。这个类也注册在autofac容器中。问题是,如果在解决它之前我该如何使用该类,那么我必须构建容器?我的意思是,我建autofac容器,我解决了插件加载类,我称之为扫描组件,并找到控制器,但随后的容器alredy内置的方法...当使用autofac初始化类型时,注册ASP.NET MVC 3控制器

编辑1

插件管理是管理所有插件的基类。它依赖于PluginLoader类,该类基本上使用Assembly.Load方法加载程序集,并扫描DLL以搜索MVC控制器。这些类在autofac容器中被注册为单例。现在,PluginLoader也应该向autofac注册控制器。但在调用此方法之前,我必须从容器中解析PluginManager类,这是问题所在。它似乎是一个“循环依赖”或类似的东西。在我解决插件管理的时间容器alredy内置

+0

但是你应该能够添加绑定,即使容器已经初始化了 – 2012-01-10 20:22:02

+0

,但我知道这不是最佳实践。不鼓励这样做,只有极少数情况下,在构建它之后应该更新容器(这是写在autofac文档中的内容) – Stefano 2012-01-10 20:24:21

+0

这就是我想问你的原因,为什么当你有构建依赖时DI框架到位了? – 2012-01-10 20:26:26

回答

0

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