AspNetCore.Docs/aspnetcore/includes/combine-di.md

1.4 KiB

Consider the following ConfigureServices method, which registers services and configures options:

[!code-csharp]

Related groups of registrations can be moved to an extension method to register services. For example, the configuration services are added to the following class:

[!code-csharp]

The remaining services are registered in a similar class. The following ConfigureServices method uses the new extension methods to register the services:

[!code-csharp]

Note: Each services.Add{GROUP_NAME} extension method adds and potentially configures services. For example, xref:Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddControllersWithViews%2A adds the services MVC controllers with views require, and xref:Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddRazorPages%2A adds the services Razor Pages requires. We recommended that apps follow this naming convention. Place extension methods in the xref:Microsoft.Extensions.DependencyInjection?displayProperty=fullName namespace to encapsulate groups of service registrations.