3 回答

TA貢獻1816條經驗 獲得超6個贊
ASP.NET Core 使用依賴注入作為一項基本功能來管理整個框架的依賴關系。為了讓依賴注入框架知道如何解決依賴關系,需要首先配置這些依賴關系或“服務” 。
當您在您的網站中創建 Web 主機時,ASP.NET Core 已經為非常核心的服務執行了此操作,Program.cs
但隨著您在 Web 應用程序中啟用更多功能,您將需要向應用程序添加其他服務以選擇加入功能。
例如services.AddMvc()
,添加在應用程序中啟用 MVC 功能和中間件所需的服務?;蛘?code>services.AddAuthentication()添加在您的應用程序中啟用身份驗證所需的服務。
由于這些功能是基于選擇加入的,默認情況下不啟用,因此應用程序的作者需要一種方法來控制它。這就是該ConfigureServices
方法存在的原因:在這里,您可以添加要啟用該功能的服務。
此外,您還可以使用它來添加自己的服務,以便您也可以在應用程序中使用依賴注入;例如在控制器中解析您自己的服務。
依賴注入實際上是一個相當復雜的話題,所以我建議你看一下關于依賴注入的文檔,看看它是如何工作的,以及你可以用它做什么。

TA貢獻1826條經驗 獲得超6個贊
ConfigureServices 有一個參數,類型為 IServiceCollection。IServiceCollection,這是一個DI(Dependency Injection)容器。將服務添加到此容器將使它們可用于依賴項注入。這意味著我們可以在應用程序的任何地方注入這些服務。ConfigureServices 主要用于 DI 和設置項目中包含的各種庫設置。

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
- 3 回答
- 0 關注
- 132 瀏覽
添加回答
舉報