【发布时间】:2017-11-30 09:21:13
【问题描述】:
我已经阅读了这个官方文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection.
在构造函数注入中有一些我不明白的地方:
让我们看看我的代码,它运行良好:
public class HomeController : Controller
{
private readonly UserManager<Utilisateurs> _userManager;
private readonly SignInManager<Utilisateurs> _signInManager;
private readonly RoleManager<IdentityRole> _roleManager;
public HomeController(
SignInManager<Utilisateurs> signInManager,
UserManager<Utilisateurs> userManager,
RoleManager<IdentityRole> roleManager)
{
_userManager = userManager;
_signInManager = signInManager;
_roleManager = roleManager;
}
如果更改构造函数参数顺序或者我删除一些这样的参数,它也可以正常工作:
public class HomeController : Controller
{
private readonly UserManager<Utilisateurs> _userManager;
private readonly SignInManager<Utilisateurs> _signInManager;
public HomeController(
UserManager<Utilisateurs> userManager
SignInManager<Utilisateurs> signInManager,
)
{
_userManager = userManager;
_signInManager = signInManager;
}
我已经理解了 DI 的概念。我不明白的是,在 C# 中如何在构造函数参数中有一些动态的东西? 是否有一套各种重载构造函数?
谢谢
【问题讨论】:
-
您需要澄清您的问题。
have something dynamic in constructor parameters是什么意思?你指的是dynamic这个关键词吗? -
可能有助于了解一个非常简单的hand-rolled DI 实现实际上做了什么——不需要特别聪明。显然,成熟的 DI 框架更加进化,但在其核心,它们只是在做同样的事情。
标签: c# dependency-injection asp.net-core-2.0