gpt4 book ai didi

c# - 什么是 ObjectFactory.Inject 在 StructureMap 3.0 中的等价物

转载 作者:太空狗 更新时间:2023-10-29 23:07:31 27 4
gpt4 key购买 nike

我最近升级到 StructureMap 3.0 并注意到缺少 ObjectFactory.Inject。此方法提供的简单注入(inject)配置的等效项是什么?

最佳答案

如前所述,3.0 将许多方法移至 ObjectFactory.Container . Inject在那里,但是ObjectFactory将在 4.0 时被淘汰。所以请避免这种方法。

Inject Container 中有很多方法类(class)。这不是静态类 ObjectFactory是。要处理这个问题,您可以这样配置:

var container = new Container(x =>
{
x.For<IFooBar>().Use<FooBar>();
}

container.Inject(myObject);

好的,只有我在同一个类(class)时才有效,但有时你需要 IContaner在 Controller 中创建类,然后创建 Container在项目启动时,在这种情况下,您可以这样做:

public MyController(ISession session, IContainer container)
{
_session = session;
_container = container;
}

public void DoSomeStuff()
{
_container.Inject(new FooBar());
}

IContainer可以使用依赖解析器注入(inject)。就我而言,我使用的是 System.Web.Mvc.DependencyResolver自定义 StructureMapDependencyResolver所以这个 DependencyResolver.Current.GetService<IContainer>().Inject(myService);也是可以的。

关于c# - 什么是 ObjectFactory.Inject 在 StructureMap 3.0 中的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com