如何将ILogger <T>依赖项注入到ConfigureServices中的服务-.NET Core 2.0

姆特森

我有以下内容MailService

public class MailService : IMailService
{
    private readonly ILogger<MailService> _logger;
    private readonly SmtpClient _client;

    public MailService(ILogger<MailService> logger, SmtpClient client)
    {
        _logger = logger;
        _client = client;
    }

    public async Task Send(string to, string subject, string body)
    {
        var message = new MailMessage
        {
            Subject = subject,
            Body = body,
            IsBodyHtml = true,
            From = new MailAddress("[email protected]")
        };

        message.To.Add(to);

        using (_client)
        {
            _logger.LogTrace($"Sending email from {message.From.Address} to {to}. Subject: {subject}");
            await _client.SendMailAsync(message);
        }
    }

}

我想使用实现工厂来创建此服务,因为我将从配置中读取smtp设置,并提供如下的smtp客户端Startup.cs

services.AddTransient<IMailService>(provider =>
{
    var mailService = new MailService(***LOGGER INSTANCE HERE***, new SmtpClient("127.0.0.1", 25));
    return mailService;
});

有没有办法获取记录器实例并将其提供给邮件服务?

乌马尔·卡里马巴迪(Umar Karimabadi)

这行不行吗?

services.AddTransient<IMailService>(provider =>

        {
            return new MailService(provider.GetRequiredService<ILogger<MailService>>(), new SmtpClient());
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在asp.net core 2.0中将依赖项注入自定义ILogger中?

如何在.Net Core 2中控制依赖项注入的范围

如何将依赖项注入.Net Core项目中的自定义WebHostService中?

将依赖项注入到验证属性Web Api Asp.Net Core中

ASP.NET Core,如何在依赖项注入中配置通用服务?

如何在.NET Core 2 API选项中使用依赖项注入?

如何在ASP.NET Core v2中将字符串与注入的依赖项一起传递

ASP.NET Core中的Func <T>类型的依赖项注入

如何将 <select multiple> 发布到 List<T> ASP.NET Core

将ILogger注入到.NET Core 3中Thrift调用的函数中

如何将 ASP.NET Core null 绑定到 Angular2 null?

将加载配置添加到ASP.NET Core中的注入依赖项中

在具有依赖项注入的ASP.NET Core 2中使用OIDC登录到Azure AD后如何添加自己的声明?

何时通过依赖项注入将DbContext实例放置在ASP.NET Core 5中

如何使用.NET Core中的默认依赖项注入从父级创建子级作用域?

如何在ASP.NET Core中将依赖项注入模型中?

如何在IHttpcontextAccessor的ASP.NET Core 2.0中使用依赖项注入

依赖项注入无法解析在Azure中运行的.NET Core Function App中类型的服务

IOptions的.NET Core 3 Worker服务依赖项注入配置

.NET Core 3 Worker服务设置依赖项注入

如何在发布中包含asp.net Core 2依赖项

如何将 .net 中的区域转换为 .net core?

如何将根重定向到Asp.Net Core 2.x中的大张旗鼓?

为什么ASP.NET Core DI知道如何解析ILogger <T>而不是ILogger?

如何使用ASP.NET Core依赖项注入将HttpMessageHandler注入HttpClient对象?

如何更好地在.Net Core中注册服务依赖注入

ASP.NET Core 2+中的ILogger和DependencyInjection

如何将图像从Angular(2/4)传递到ASP.NET Core WebAPI服务器文件夹中

如何在ASP NET Core依赖注入中获取所有已注册的DbContext(或服务)