Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET 5 MVC(Visual Studio 2015):一个名为Inject的关键字_Asp.net_Asp.net Mvc_Asp.net Core - Fatal编程技术网

ASP.NET 5 MVC(Visual Studio 2015):一个名为Inject的关键字

ASP.NET 5 MVC(Visual Studio 2015):一个名为Inject的关键字,asp.net,asp.net-mvc,asp.net-core,Asp.net,Asp.net Mvc,Asp.net Core,我刚刚安装了visual studio 2015,并围绕ASP.NET 5模板(MVC)进行了游戏,我看到视图中使用了一个名为inject的关键字。它是用于依赖注入的吗?如果是,它是如何工作的?假设代码如下: [Authorize] public class AccountController : Controller { private readonly UserManager<ApplicationUser> _userManager; private reado

我刚刚安装了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();
    }
  ...
  }
[授权]
公共类AccountController:控制器
{
私有只读用户管理器_UserManager;
专用只读签名管理器\u签名管理器;
私人只读IEmailSender\u emailSender;
私有只读ISmsSender(U SMSENDER);
私有只读应用程序上下文\u应用程序上下文;
检查私有静态bool_数据库;
公共账户控制员(
用户管理器用户管理器,
SignInManager SignInManager,
电邮发送者,
伊斯姆森德·斯姆森德,
应用程序上下文(应用程序上下文)
{
_userManager=userManager;
_signInManager=signInManager;
_emailSender=emailSender;
_smsSender=smsSender;
_applicationDbContext=applicationDbContext;
}
//
//获取:/Account/登录
[HttpGet]
[异名]
public IActionResult登录(字符串returnUrl=null)
{
ViewData[“ReturnUrl”]=ReturnUrl;
返回视图();
}
...
}
登录视图有一个注入关键字,如:

@model LoginViewModel
@inject SignInManager<ApplicationUser> SignInManager

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

 }
@model LoginViewModel
@注入SignInManager SignInManager
@{
ViewData[“Title”]=“登录”;
}

然而,我在其他视图中看不到这一点,在应用程序中也没有Ninject或Unity的痕迹。这是什么?一个新的惊人功能?

Asp.net 5附带了内置的依赖项注入和许多相关功能。在您的示例中,您正在注入一个
SignInManager的实例,这是MVC-6中的一个新特性。如需了解更多详细信息,您是对的,它只是将服务注入到您的视图中。不需要Ninject、Unity等。ASP.NET5内置了依赖项注入。其他视图不需要使用任何注入对象,因此它们不使用它。