我陷入了两难境地。我正在 ASP.NET MVC 2 中开发高度模块化的 Web 应用程序(事实上,核心将是超级轻量级的,所有模块/插件都可以工作)。我发现 MEF 对于模块发现非常有用,但我不想将它用作 IoC 容器。我很有可能需要“真正的”IoC 容器的高级功能,所以我想使用 Unity。
这就是问题所在:如何允许模块(以编程方式)配置容器=在应用程序启动时注册自己的类型(mvc 控制器、服务的自定义实现......)而不在所有模块中对 Unity 产生硬依赖?我知道 Common Service Locator 项目,看起来还不错,但是这个接口 co 容器只允许解析类型,而不是注册它们(afaik)。
我真的希望你能理解我的观点,我知道我的英语很糟糕(我来自非英语国家:) 非常感谢!