Roy*_*mir 0 c# .net-core asp.net-core
我们公司中的某个人(很久以前就错误地)写了这个静态类,由Nuget提供:(我无法编辑)
public static class MailService
{
public static void SendEmail(string recipients, string subject, string msg )
{
SendEmail(recipients, subject, msg);
}
...
}
Run Code Online (Sandbox Code Playgroud)
我已经知道这很糟糕。但是,让我们继续。
我想在asp.net核心项目中通过DI使用此类。
问题是我不能使用它(因为static不能被更新):
services.AddSingleton<MailService>();
Run Code Online (Sandbox Code Playgroud)
题:
还有办法使MailService(或任何包装)注射剂吗?
就这么简单:
public interface IMailService {
void SendEmail(string recipients, string subject, string msg);
}
public class MailServiceWrapper : IMailService {
public void SendEmail(string recipients, string subject, string msg) {
MailService.SendEmail(recipients, subject, msg);
}
}
Run Code Online (Sandbox Code Playgroud)
在启动类中:
services.AddSingleton<IMailService, MailServiceWrapper>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |