我正在创建我的应用程序,现在我无法理解是否有必要在 Asp.net Core 中注册服务。我知道需要注册服务来在接口及其实现之间建立连接,因此我们可以在控制器构造函数中获取这些接口的实例,但是控制器中未使用的接口和服务呢?
我希望收到有关我的问题的任何信息。
如果您还有控制器正在使用的其他服务,您还可以将这些服务注册到 ASP.NET Core 服务集合。这也将自动连接这些服务。 假设您有一个依赖于某个服务的控制器:
public MyController(IFoo foo)
您可以将
IFoo
实现注册到服务集合中,正如 OP 中已经建议的:
builder.Services.AddSingleton<IFoo, Foo>();
但是,如果
Foo
实现依赖于另一个服务,会发生什么?
public Foo(IBar bar)
您也可以注册:
builder.Services.AddSingleton<IBar, Bar>();
如果不这样做,系统将不知道如何创建
IBar
对象,这意味着它无法创建
IFoo
对象,这意味着它无法创建 MyController
对象。