Kug*_*gel 6 ioc-container autofac partial resolve
我似乎需要这么多.
假设我有一个带有构造函数的类,它带有几个参数.其中一些可以通过注册组件来解决.但其余的是在运行时创建的实例(例如,从数据库中获取实体).
Autofac能以一种很好的方式处理这些情况吗?或者我的设计是次优的?
为了澄清,我有类这样的构造函数的类:
public MyClass(IService1 service1, IService2 service2, Data1 data1, Data2 data2)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
container.Resolve<MyClass>(data1, data2);
ben*_*ruk 10
您可以通过在Autofac容器中注册工厂方法来优雅地处理此问题.您解析工厂方法,然后使用它来创建具有运行时依赖项的实例.您可以通过注册和解析委托或自定义工厂类型来自行完成此操作.但是,Autofac明确支持委托工厂.
没有足够的信息来评论您的设计.我会把它留给你:)
我想说你的设计不是最优的。
你似乎把事情混在一起了。依赖注入(使用容器)主要用于将服务组件注入到其他组件中。不要注入实体之类的东西,因为容器不负责管理它们的生命周期。相反,注入一个可以为您管理实体的服务,例如存储库。虽然是讨论的主题,但我不会注入工作单元,而是注入一个用于创建工作单元的工厂。通过这种方式,您的应用程序可以显式管理工作单元的生命周期。
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |