位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 創(chuàng)建ASP.NET Core Web應用程序 — 依賴注入

提問人:劉團圓發(fā)布時間:2020-12-10

    依賴注入(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。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(0)
返回頂部