![](/img/trans.png)
[英]How can I inject same class with different Life Cycles on Asp.Net Core DI?
[英]How can I use DI for 3'rd party static class in Dot Net Core?
我們公司中的某個人( 很久以前就錯誤地 )寫了這個靜態類,由Nuget提供:(我無法編輯)
public static class MailService
{
public static void SendEmail(string recipients, string subject, string msg )
{
SendEmail(recipients, subject, msg);
}
...
}
我已經知道這很糟糕。 但是,讓我們繼續。
我想在asp.net核心項目中通過DI使用此類。
問題是我不能使用它(因為static
不能被更新):
services.AddSingleton<MailService>();
題:
還有沒有辦法使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);
}
}
在啟動類中:
services.AddSingleton<IMailService, MailServiceWrapper>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.