Как внедрить служебные зависимости в карту сайта MVC DynamicNodeProviderBase с использованием StructureMap

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

    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 ответ

Решение

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

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

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

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

Другие вопросы по тегам