是的,ASP.NET Core 支持依賴注入(Dependency Injection,簡稱 DI)。依賴注入是一種設計模式,它允許將對象的依賴關系從對象內部解耦出來,使得對象更加靈活、可測試和維護。
在 ASP.NET Core 中,依賴注入是通過 Microsoft.Extensions.DependencyInjection 命名空間提供的。要使用依賴注入,你需要在應用程序的啟動代碼中配置服務容器,然后將需要注入的服務注冊到容器中。接下來,在需要使用這些服務的類中,通過構造函數或其他方法將它們注入。
以下是一個簡單的示例,展示了如何在 ASP.NET Core 中使用依賴注入:
public interface IMessageService
{
string GetMessage();
}
public class EmailService : IMessageService
{
public string GetMessage()
{
return "Hello from EmailService!";
}
}
Startup.cs
文件中,配置服務容器并將服務注冊到容器中:public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMessageService, EmailService>();
}
這里,AddTransient
方法表示將 EmailService
注冊為 IMessageService
接口的臨時實例。每次請求 IMessageService
時,都會創建一個新的 EmailService
實例。
IMessageService
的類中,通過構造函數將服務注入:public class HomeController : Controller
{
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService)
{
_messageService = messageService;
}
public IActionResult Index()
{
var message = _messageService.GetMessage();
return Content(message);
}
}
在這個例子中,HomeController
通過構造函數接收一個 IMessageService
實例,并將其存儲在類的私有字段中。這樣,HomeController
就可以使用 EmailService
提供的服務了。