C# 創(chuàng)建ASP.NET Core Web應用程序 — 依賴注入
依賴注入(Dependency Injection,DI)是一個非常高級的概念,但是因為ASP.NET Core是以該概念為基礎構(gòu)建的,所以這里簡單介紹一下依賴注入。關(guān)于DI,要理解的一個基本知識點是,在DI中避免使用new關(guān)鍵字。
Player[] players = new Player[2];
之所以要避免使用new,是因為new關(guān)鍵字會將程序與其引用的類永久綁定在一起。一些情況下,需要修改類的可能性極低,這時使用new關(guān)鍵字是可以接受的,是否使用該關(guān)鍵字就是一個設計決策。另一個選項是實現(xiàn)接口。接口將使用者與提供程序松散地耦合在一起,或者解除二者的耦合,這里,程序是使用者,類是提供程序。如下面的代碼段所示,在創(chuàng)建Player時沒有使用new關(guān)鍵字。
public interface ICardGameClient
{
void Player(string Name);
}
public class PlaySomeCards
{
private readonly ICardGameClient _cardGameClient;
public PlaySomeCards(ICardGameClient cardGameClient)
{
_cardGameClient = cardGameClient;
}
public PlayHand
{
_cardGameClient.Player("Benjamin");
}
}
依賴注入更進一步,使用了所謂的工廠或容器。ASP.NET Core默認支持DI,并在Startup.cs文件中配置DL創(chuàng)建ASP.NET Core Web應用程序時,會創(chuàng)建Startup.cs文件。該文件包含一個ConfigureServices()方法,在該方法中配置提供程序。
public void ConfigurServices(IServiceCollection services)
{
services.AddKvc();
services . AddDbContext<className>(options => ...
services . AddIdentity<classNamel,classNaoie2>()...
}
當程序代碼發(fā)出請求時,ConfigureServices()方法中配置的服務提供程序會提供dassName。
點擊加載更多評論>>