为了账号安全,请及时绑定邮箱和手机立即绑定

什么是服务以及为什么将它们添加到 ASP.NET Core 中?

什么是服务以及为什么将它们添加到 ASP.NET Core 中?

C#
长风秋雁 2022-12-31 10:32:24
我开始学习 ASP.NET Core,在 Web API 模板的框架内,有一个Startup类,其中ConfigureServices()定义了方法。谁能用简单的话解释一下他设置了哪些服务,以及他们为什么需要这些服务?谢谢!
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

ASP.NET Core 使用依赖注入作为一项基本功能来管理整个框架的依赖关系。为了让依赖注入框架知道如何解决依赖关系,需要首先配置这些依赖关系或“服务” 。

当您在您的网站中创建 Web 主机时,ASP.NET Core 已经为非常核心的服务执行了此操作,Program.cs但随着您在 Web 应用程序中启用更多功能,您将需要向应用程序添加其他服务以选择加入功能。

例如services.AddMvc(),添加在应用程序中启用 MVC 功能和中间件所需的服务。或者services.AddAuthentication()添加在您的应用程序中启用身份验证所需的服务。

由于这些功能是基于选择加入的,默认情况下不启用,因此应用程序的作者需要一种方法来控制它。这就是该ConfigureServices方法存在的原因:在这里,您可以添加要启用该功能的服务。

此外,您还可以使用它来添加自己的服务,以便您也可以在应用程序中使用依赖注入;例如在控制器中解析您自己的服务。

依赖注入实际上是一个相当复杂的话题,所以我建议你看一下关于依赖注入的文档,看看它是如何工作的,以及你可以用它做什么。


查看完整回答
反对 回复 2022-12-31
?
跃然一笑

TA贡献1826条经验 获得超6个赞

ConfigureServices 有一个参数,类型为 IServiceCollection。IServiceCollection,这是一个DI(Dependency Injection)容器。将服务添加到此容器将使它们可用于依赖项注入。这意味着我们可以在应用程序的任何地方注入这些服务。ConfigureServices 主要用于 DI 和设置项目中包含的各种库设置。



查看完整回答
反对 回复 2022-12-31
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

ConfigureServices方法是:

  • 选修的。

  • 在 Configure 方法之前由主机调用以配置应用程序的服务。

  • 配置选项按约定设置的位置。

典型的模式是调用所有的Add{Service}方法,然后调用所有的services.Configure{Service}方法。例如,请参阅[配置身份服务][1]。

主机可能会在调用 Startup 方法之前配置一些服务。有关详细信息,请参阅主机。

对于需要大量设置的功能,有 Add{Service} 扩展方法IServiceCollection。一个典型的 ASP.NET Core 应用程序为 Entity Framework、Identity 和 MVC 注册服务:

public void ConfigureServices(IServiceCollection services)

{

    services.AddDbContext<ApplicationDbContext>(options =>

        options.UseSqlServer(

            Configuration.GetConnectionString("DefaultConnection")));

    services.AddDefaultIdentity<IdentityUser>()

        .AddDefaultUI(UIFramework.Bootstrap4)

        .AddEntityFrameworkStores<ApplicationDbContext>();



    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);


    // Add application services.

    services.AddTransient<IEmailSender, AuthMessageSender>();

    services.AddTransient<ISmsSender, AuthMessageSender>();

}

将服务添加到服务容器可使它们在应用程序和 Configure 方法中可用。这些服务通过依赖注入或从ApplicationServices.


参考:https ://learn.microsoft.com/en-us/aspnet/core/fundamentals/startup?view=aspnetcore-2.2#the-configureservices-method


查看完整回答
反对 回复 2022-12-31
  • 3 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信