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