Asp.net mvc 3 如何使用StructureMap将服务依赖项注入MVC sitemap DynamicNodeProviderBase

Asp.net mvc 3 如何使用StructureMap将服务依赖项注入MVC sitemap DynamicNodeProviderBase,asp.net-mvc-3,dependency-injection,structuremap,mvcsitemapprovider,Asp.net Mvc 3,Dependency Injection,Structuremap,Mvcsitemapprovider,考虑以下代码: public class InboxMenuItemDynamicProvider : DynamicNodeProviderBase { private IMyService _myService { get; set; } public InboxMenuItemDynamicProvider(IActionService actionService) { _myService = myService;

考虑以下代码:

    public class InboxMenuItemDynamicProvider : DynamicNodeProviderBase
    {
      private IMyService _myService { get; set; }

      public InboxMenuItemDynamicProvider(IActionService actionService)
      {
         _myService = myService;
      }

      public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
      { 
        // use _myService here....e.g. db access 
      }
    }
}
BoxMenuItemDynamicProvider中的公共类:DynamicNodeProviderBase { 私有IMyService_myService{get;set;} 公用InboxMenuItemDynamicProvider(IActionService actionService) { _myService=myService; } 公共重写IEnumerable GetDynamicNodeCollection() { //在此处使用_myService…,例如数据库访问 } } } 如何使用StructureMap和MVC3将服务依赖注入Mvc Sitemap DynamicNodeProvider?我正在使用MVC3依赖项解析器

然而,在运行应用程序时,我得到了一个“无默认构造函数”错误。我需要以某种方式将服务依赖项注入到提供者中,但我完全不知道在哪里/如何注入它们。我甚至不知道Mvc站点地图是否可能在依赖解析程序之外。

请参阅以下链接:

我想你可以用:

private IMyService _myService 
{ 
    get 
    { 
        return DependencyResolver.Current.GetService<IMyService>(); 
    } 
}
private IMyService\u myService
{ 
得到
{ 
返回DependencyResolver.Current.GetService();
} 
}

在构造函数中不执行任何特定操作

可以显示注册表代码吗?好的,与其使用依赖项注入,不如在运行时解决它?我想我不需要对它进行单元测试,所以实际上并不需要DI。所有问题都是在运行时使用DI解决的。您仍然可以对此进行单元测试,只需以不同的方式配置容器。