在ASP.NET Core Dependecy Injection实现中,对象的依赖关系在对象创建时解析,对象直接引用依赖关系。这似乎也是Autofac的情况。因此,如果我们有一个Repository和DbContext,我们必须使它们都成为范围,因为singleton存储库不会工作。
相比之下,Java世界中的DI框架(CDI,Spring IoC)注入代理而不是实际的依赖关系,这些依赖关系能够在每次使用该依赖关系时解析依赖关系。所以我们可以有单例存储库,因为注入的请求范围entityManager在每个请求上都会有所不同。
我想问为什么.net的框架不像java框架那样做?另外,这两种方法的优点和缺点是什么?
顺便说一下,试图在.net中解决它的问题 - how to use scoped dependency in a singleton in C# / ASP