亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是服務以及為什么將它們添加到 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 功能和中間件所需的服務?;蛘?code>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 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號