获取对 StructureMap 容器的引用
Getting Reference to StructureMap Container
我是 StructureMap 的新手,有一个场景我想获取容器的句柄。
我正在 Global.asax
的 Application_Start 中构建 Web API 服务初始化 StructureMap 容器
IContainer container = IoC.Initialize();
GlobalConfiguration.Configuration.DependencyResolver = new MyDependencyResolver(container);
但想访问我的控制器中的容器以获取容器中对象的实例。
我知道我可以调用 container.GetInstance 并指定要获取的类型,但由于我没有使用 ObjectFactory 并在 Global.asax 中初始化了容器,我不知道如何访问它在我的控制器中。
将对容器的引用从 Global.asax 传递到其余应用程序代码的最佳方式是什么?
谢谢,
周杰伦
只需在控制器的构造函数中添加 IContainer
依赖项。
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>();
}
}
我是 StructureMap 的新手,有一个场景我想获取容器的句柄。
我正在 Global.asax
的 Application_Start 中构建 Web API 服务初始化 StructureMap 容器IContainer container = IoC.Initialize();
GlobalConfiguration.Configuration.DependencyResolver = new MyDependencyResolver(container);
但想访问我的控制器中的容器以获取容器中对象的实例。
我知道我可以调用 container.GetInstance 并指定要获取的类型,但由于我没有使用 ObjectFactory 并在 Global.asax 中初始化了容器,我不知道如何访问它在我的控制器中。
将对容器的引用从 Global.asax 传递到其余应用程序代码的最佳方式是什么?
谢谢, 周杰伦
只需在控制器的构造函数中添加 IContainer
依赖项。
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>();
}
}