我刚刚安装了Visual Studio 2015,并围绕ASP.NET 5模板(MVC)进行了播放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();
}
...
}
登录视图具有一个注入关键字,例如:
@model LoginViewModel
@inject SignInManager<ApplicationUser> SignInManager
@{
ViewData["Title"] = "Log in";
}
但是,我在其他视图中看不到这一点,并且在应用程序中没有Ninject或Unity的痕迹。这是什么?一个新的惊人功能?
Asp.net 5带有内置的依赖注入及其周围的许多功能。在您的示例中,您要将一个SignInManager<ApplicationUser>
named实例SignInManager
插入到razor视图中。
现在,您可以像通常使用Model属性一样使用它: @SignInManager.Method()
有关更多信息,请参见本文:http : //blog.tomasjansson.com/asp-net-5-ioc-and-dependency-injection/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句