0

在依赖注入中,我理解为什么我们需要带有 2 个类型参数的 Register()。

myContainer.Register<I1,A>();

从现在开始,类型为I1的参数,在ctors中,会得到A的实例。太好了。我们不需要处理创建,依赖注入容器会给我们带来我们需要的东西(不管是不是 Singleton)。

现在,我不明白的是

myContainer.Register<B>();

我们没有将任何接口映射到这个具体类型B。

它有什么用?

4

1 回答 1

-1

您不需要用于依赖注入的接口。但是依赖注入对它们更有用!

您可以使用服务集合注册具体类型,ASP.NET Core 会毫无问题地将它们注入到您的类中。

通过注入它们而不是简单地创建实例所获得的好处

你应该这样做吗?不。

依赖注入是依赖倒置原理的工具:https ://en.wikipedia.org/wiki/Dependency_inversion_principle

如 SOLID 中所述

一个人应该“依赖于抽象,而不是具体”。

于 2020-08-21T16:43:24.477 回答