首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MVC 6依赖注入

ASP.NET MVC 6依赖注入
EN

Stack Overflow用户
提问于 2016-01-26 15:29:28
回答 2查看 2.4K关注 0票数 5

我有密码,

代码语言:javascript
运行
复制
public class VendorManagementController : Controller
{
    private readonly IVendorRespository _vendorRespository;

    public VendorManagementController()
    {
        _vendorRespository = new VendorRespository();
    }

现在我想使用依赖注入。所以代码将是

代码语言:javascript
运行
复制
public class VendorManagementController : Controller
{
    private readonly IVendorRespository _vendorRespository;

    public VendorManagementController(IVendorRespository vendorRespositor)
    {
        _vendorRespository = vendorRespositor;
    }

我的问题是,我找不到可以创建VendorRespository对象的地方,以及如何使用定义的参数化VendorManagementController(IVendorRespository vendorRespositor)构造函数将其传递给VendorManagementController

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-26 15:38:54

在MVC6中,依赖项注入是框架的一部分--所以您不需要单元、尼尼微等等。

下面是一个教程:http://dotnetliberty.com/index.php/2015/10/15/asp-net-5-mvc6-dependency-injection-in-6-steps/

票数 3
EN

Stack Overflow用户

发布于 2016-01-26 15:56:47

依赖注入是在ASP.NET MVC 6中完成的。要使用它,只需要在ConfigureServices方法Startup.cs中设置您的依赖项。

代码如下所示:

代码语言:javascript
运行
复制
   public void ConfigureServices(IServiceCollection services)
   {

      // Other code here

      // Single instance in the current scope.  Create a copy of CoordService for this 
      // scope and then always return that instance
      services.AddScoped<CoordService>();

      // Create a new instance created every time the SingleUseClass is requested
      services.AddTransient<SingleUseClass>();

#if DEBUG
      // In debug mode resolve a call to IMailService to return DebugMailService
      services.AddScoped<IMailService, DebugMailService>();
#else
      // When not debugging resolve a call to IMailService to return the 
      // actual MailService rather than the debug version
      services.AddScoped<IMailService, MailService>();
#endif
    }

该示例代码显示了以下几点:

  • 可以使用AddInstance、AddTransient、AddSingleton和AddScoped控制注入项的生命周期。
  • 编译时#if可用于在调试时和运行时注入不同的对象。

ASP.NET MVC 6依赖项注入的正式文档中有更多的信息,也是一个很好的基本通过这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35017519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档