为啥 web api 中没有 Ilogger 的 DI?
Posted
技术标签:
【中文标题】为啥 web api 中没有 Ilogger 的 DI?【英文标题】:Why there is no DI for Ilogger in web api?为什么 web api 中没有 Ilogger 的 DI? 【发布时间】:2022-01-11 23:58:07 【问题描述】:我想知道(想知道)为什么我们可以在 controller 中使用 ILogger
而无需在 ConfigureService
中为其添加 依赖注入 (DI)?
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger,
希望我的问题很清楚。
【问题讨论】:
因为 ASP.NET Core 会自动为你添加。 有一个AddLogging 扩展方法用内置的配置系统配置日志系统(并注册ILogger<T>
)。在某些配置下,该方法由框架自动调用。
【参考方案1】:
请在启动文件中添加以下内容:
private void CreateServiceProvider()
services.AddLogging();//<--HERE
【讨论】:
以上是关于为啥 web api 中没有 Ilogger 的 DI?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的数据没有在 Flutter for web 中使用 api 从实时数据库中检索
为啥我没有在经过 Windows 身份验证的 Web Core API 中获得我的用户名?
为啥 ASP.NET web api 3 项目在 ASP.NET web api 2 执行时没有请求就无法启动?