C# 创建ASP.NET Core Web应用程序 — 依赖注入
依赖注入(Dependency Injection,DI)是一个非常高级的概念,但是因为ASP.NET Core是以该概念为基础构建的,所以这里简单介绍一下依赖注入。关于DI,要理解的一个基本知识点是,在DI中避免使用new关键字。
Player[] players = new Player[2];
之所以要避免使用new,是因为new关键字会将程序与其引用的类永久绑定在一起。一些情况下,需要修改类的可能性极低,这时使用new关键字是可以接受的,是否使用该关键字就是一个设计决策。另一个选项是实现接口。接口将使用者与提供程序松散地耦合在一起,或者解除二者的耦合,这里,程序是使用者,类是提供程序。如下面的代码段所示,在创建Player时没有使用new关键字。
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创建ASP.NET Core Web应用程序时,会创建Startup.cs文件。该文件包含一个ConfigureServices()方法,在该方法中配置提供程序。
public void ConfigurServices(IServiceCollection services)
{
services.AddKvc();
services . AddDbContext<className>(options => ...
services . AddIdentity<classNamel,classNaoie2>()...
}
当程序代码发出请求时,ConfigureServices()方法中配置的服务提供程序会提供dassName。
点击加载更多评论>>