如何将自己的类注入ASP.NET MVC Core中的控制器?

pro*_*cer -7 c# dependency-injection asp.net-core-mvc asp.net-core-1.1

我创建了自己的用户管理类来调用UserManager.我希望控制器能够访问UserManager对象以登录或注册用户.

我知道我必须在控制器类中提供一个参数化构造函数,它接受一个对象UserManager并将其赋值给私有属性等.

但是我在哪里以及如何在我的项目中注册我的类,以便它将由ASP.NET MVC Core框架自动注入?

Ste*_*son 6

在类添加的ConfigureServices(IServiceCollection services)方法中Startup.cs:

services.AddTransient<IOperationTransient, Operation>();
services.AddScoped<IOperationScoped, Operation>();
services.AddSingleton<IOperationSingleton, Operation>();
Run Code Online (Sandbox Code Playgroud)

换掉IOperationTransient,IOperationScoped或者换个IOperationSingleton需要注入的类/服务.

注册注射服务有三种方法:

  1. 瞬态 - 每次请求时都会创建这些服务.
  2. Scoped - 每个请求将创建一次这些服务.
  3. 单例 - 这些服务在第一个请求中创建一次,然后每个后续请求将接收相同的实例.