我正在创建我的应用程序,现在我在理解是否有必要在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对象.

Csharp相关问答推荐

更改对象的旋转方向

ASP.NET MVC中创建视图的过滤器

安装附加的. exe与Visual Studio

Unity 2D自顶向下弓旋转

需要澄清C#的Clean Architecture解决方案模板的AuditableEntityInterceptor类

在LINQ Where子句中使用新的DateTime

从Blob存储中提取tar.gz文件并将提取结果上载到另一个Blob存储

Quartz调度程序不调用作业(job)类

Razor视图Razor页面指向同一端点时的优先级

Cosmos SDK和Newtonsoft对静态只读记录的可能Mutations

C# CompareTo()和Compare()可以返回除-1和1以外的整数吗?

如何让NLog停止写入冗余信息?

如何在CSharp中将json字符串转换为DataTable?

异步任务调用程序集

基于C#和ANGING的SignalR实时聊天流媒体应用

如何在不复制或使用输出的情况下定义项目依赖

我可以查看我们向应用程序洞察发送了多少数据吗?

忽略Visual Studio代码中的StyleCop规则

如何在单击按钮后多次异步更新标签

如何获取我在SQL中输入的值