2015-03-12 4 views
0

Я новичок в StructureMap и имею сценарий, в котором я хотел бы получить дескриптор контейнера.Получение ссылки на Container StructureMap

Я строй службы Web API инициализации StructureMap контейнера в Application_Start из Global.asax

IContainer container = IoC.Initialize(); 
GlobalConfiguration.Configuration.DependencyResolver = new MyDependencyResolver(container); 

Но хочу получить доступ контейнера в пределах моих контроллеров для получения экземпляров на объекты в контейнере.

Я знаю, что могу вызвать container.GetInstance и указать тип для получения, но поскольку я не использую ObjectFactory и не инициализировал контейнер в Global.asax, я не знаю, как получить доступ к нему в моих контроллерах.

Каков наилучший способ передачи ссылки на контейнер из Global.asax на остальную часть кода приложения?

Thanks, Jay.

ответ

2

Просто добавьте IContainer dependendy в конструктор контроллера.

public class MyController : IController 
{ 
    private readonly IContainer container; 

    public MyController(IContainer container) 
    { 
     this.container = container; 
    } 

    [HttpPost] 
    public ActionResult Execute(ViewModel viewModel) 
    { 
     var someType = this.container.GetInstance<ISomeType>(); 
    } 
} 
+0

Отлично! это было так просто, теперь как я могу отметить это как ответ :) – Jay

+0

@Jay Я не знаю, никогда не задавал вопрос в SO – LetMeCodeThis

 Смежные вопросы

  • Нет связанных вопросов^_^