gpt4 book ai didi

ASP.NET 5 MVC (Visual Studio 2015) : a keyword called Inject

转载 作者:行者123 更新时间:2023-12-01 05:02:27 24 4
gpt4 key购买 nike

我刚刚安装了 Visual Studio 2015 并使用了 ASP.NET 5 模板 (MVC),我看到了一个名为 inject 的关键字已在 View 中使用。是否用于依赖注入(inject),如果是,它是如何工作的?假设以下代码:

[Authorize]
public class AccountController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly IEmailSender _emailSender;
private readonly ISmsSender _smsSender;
private readonly ApplicationDbContext _applicationDbContext;
private static bool _databaseChecked;

public AccountController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
IEmailSender emailSender,
ISmsSender smsSender,
ApplicationDbContext applicationDbContext)
{
_userManager = userManager;
_signInManager = signInManager;
_emailSender = emailSender;
_smsSender = smsSender;
_applicationDbContext = applicationDbContext;
}

//
// GET: /Account/Login
[HttpGet]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
return View();
}
...
}

登录 View 有一个注入(inject)关键字,如:
@model LoginViewModel
@inject SignInManager<ApplicationUser> SignInManager

@{
ViewData["Title"] = "Log in";

}

但是,我在其他 View 中没有看到这一点,并且应用程序中没有 Ninject 或 Unity 的痕迹。这是什么?一个新的惊人功能?

最佳答案

Asp.net 5 带有内置的依赖注入(inject)和许多围绕它的特性。在您的示例中,您正在注入(inject) SignInManager<ApplicationUser> 的实例命名为 SignInManager进入 Razor 视野。

您现在可以像通常使用 Model 属性一样使用它:@SignInManager.Method()
有关详细信息,请参阅本文:http://blog.tomasjansson.com/asp-net-5-ioc-and-dependency-injection/

关于ASP.NET 5 MVC (Visual Studio 2015) : a keyword called Inject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723006/

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