如何使用StructureMap将服务依赖项注入MVC​​站点地​​图DynamicNodeProviderBase

时间:2011-07-21 16:17:42

标签: asp.net-mvc-3 dependency-injection structuremap mvcsitemapprovider

请考虑以下代码:

    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 
      }
    }
}

如何使用StructureMap和MVC3将服务依赖项注入Mvc Sitemap DynamicNodeProvider?我正在使用MVC3依赖解析器。

但是,在运行应用程序时,我收到“无默认构造函数”错误。我需要以某种方式将服务依赖注入到提供程序中,但我完全不知道我可以在何处/如何注入它们。我甚至不知道Mvc Site Map是否可能在依赖解析器之外。

1 个答案:

答案 0 :(得分:4)

查看此链接: http://mvcsitemap.codeplex.com/discussions/263971

我认为你可以使用:

private IMyService _myService 
{ 
    get 
    { 
        return DependencyResolver.Current.GetService<IMyService>(); 
    } 
}

并且在构造函数中没有任何具体内容