gpt4 book ai didi

c# - 注入(inject) UserManager 和 UserStore

转载 作者:行者123 更新时间:2023-11-30 14:56:03 25 4
gpt4 key购买 nike

使用 ninject 将 UserManager 和 UserStore 注入(inject) Controller 的最优雅的方法是什么?例如,上下文可以这样注入(inject):

 kernel.Bind<EmployeeContext>().ToSelf().InRequestScope();

public class EmployeeController : Controller
{
private EmployeeContext _context;

public EmployeeController(EmployeeContext context)
{
_context = context;
}

ninject 可以用一行代码将 UserManager 和 UserStore 注入(inject)到 Controller 中吗?!如果没有,最简单的方法是什么?我不想用这个:

 var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));

提前谢谢你。

最佳答案

没问题,您只需要确保所有依赖项都有绑定(bind)(ApplicationDbContextUserManager<T>UserStore<T>)。绑定(bind)开放泛型是这样完成的:

kernel.Bind(typeof(UserStore<>)).ToSelf().InRequestScope(); // scope as necessary.

如果它有一个接口(interface),你会像这样绑定(bind)它:

kernel.Bind(typeof(IUserStore<>)).To(typeof(UserStore<>));

因此,有了这些绑定(bind),您就可以开始了:

kernel.Bind<ApplicationDbContext>().ToSelf().InRequestScope();
kernel.Bind(typeof(UserManager<>)).ToSelf(); // add scoping as necessary
kernel.Bind(typeof(UserStore<>)).ToSelf(); // add scoping as necessary

关于c# - 注入(inject) UserManager 和 UserStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23968065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com