Как внедрить служебные зависимости в карту сайта MVC DynamicNodeProviderBase с использованием StructureMap - PullRequest
3 голосов
/ 21 июля 2011

Рассмотрим следующий код:

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

Как мне внедрить зависимость службы в Mavc Sitemap DynamicNodeProvider с использованием StructureMap и MVC3?Я использую средство разрешения зависимостей MVC3.

Однако при запуске приложения появляется сообщение об ошибке «конструктор по умолчанию отсутствует».Мне нужно как-то внедрить служебные зависимости в провайдера, но я в полной растерянности относительно того, где / как я могу их внедрить.Я даже не знаю, возможно ли это, поскольку Mvc Site Map может находиться за пределами средства разрешения зависимостей.

1 Ответ

4 голосов
/ 02 августа 2011

Смотрите эту ссылку: http://mvcsitemap.codeplex.com/discussions/263971

Я думаю, вы могли бы просто использовать:

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

и не делайте ничего конкретного в вашем конструкторе

...