【发布时间】:2017-01-19 10:58:18
【问题描述】:
解决方案:
-
ClassLibrary.Abstract
- 有很多美味的服务
-
ClassLibrary.Concrete
- 包含上述服务的实现
-
MvcWebApp
- 以上引用类
- 包含组合根
所有内容都在组合根目录中注册,因此MvcWebApp 显然引用了容器,在我的情况下它是 Autofac 但我认为这并不重要。
问题: 什么是正确的方法(如果有的话)在运行时在类库中解析服务而不在解决方案中的任何地方添加对容器的引用,同时仍然能够控制生命周期范围?
【问题讨论】:
-
您能否详细说明为什么需要延迟解析实例?
-
@steven 由 UI 触发的动作将根据参数使用不同的服务(如乐高积木)
-
@NightOwl888 谢谢,但我想的是比为所有这些服务创建工厂更通用的方法。类库中充满了这些服务(乐高积木),这些服务(乐高积木)旨在根据作业参数在运行时解析和释放。
-
关于工厂的大警告:they are a code smell.
标签: c# .net dependency-injection autofac ioc-container