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

发布于 2024-11-25 09:03:40 字数 651 浏览 0 评论 0原文

考虑以下代码:

    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 站点地图可能位于依赖解析器之外。

Consider the following code:

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

How do I go about injecting a service dependency into a Mvc Sitemap DynamicNodeProvider using StructureMap and MVC3? I'm using the MVC3 dependency resolver.

However, on running the app, I get a 'no default constructor' error. I need to somehow inject service dependencies into the provider, but I'm at a total loss as to where/how I can inject them. I don't even know if its possible as Mvc Site Map might be outside of the depency resolver.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴意少年 2024-12-02 09:03:40

请参阅此链接:
http://mvcsitemap.codeplex.com/discussions/263971

我认为你可以使用:

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

和在你的构造函数中不做任何具体的事情

See this link:
http://mvcsitemap.codeplex.com/discussions/263971

I think you could just use:

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

and do nothing specific in your constructor

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文