gpt4 book ai didi

dependency-injection - 如何在 StructureMap 3 中替换 ObjectFactory 的使用

转载 作者:行者123 更新时间:2023-12-04 08:20:15 35 4
gpt4 key购买 nike

目前我们使用 StructureMap v2.6 进行依赖注入(inject),我们的设置是这样的:

在 Application_Start 我们有:

DependencyResolver.SetResolver(new StructureMapDependencyResolver(IoC.Initialize()));

Initialize 方法是这样实现的:
public static IContainer Initialize() {
ObjectFactory.Initialize(x => {
x.Scan(scan => { scan.TheCallingAssembly(); scan.WithDefaultConventions(); });

x.For<IFoo>().Use(() => new Foo());

});
return ObjectFactory.Container;
}
}

在我们的代码中,我们有几个地方使用了 ObjectFactory.GetInstance<IFoo>()而不是使用构造函数注入(inject)。对于 StructureMap v3,这已被标记为过时,所以我的问题是我们如何使用最新版本实现相同的目标。

最佳答案

如果构造函数注入(inject)是不可能的,那么恐怕你的选择有限。

普遍共识,suggested by StructureMaps creator in a similar question ,就是滚动你自己的ObjectFactory。这是 simple implementation of an ObjectFactory您可以使用上一个链接中引用的内容。

如果您正在利用 StructureMap 的 HttpContext bound nested container并且引用 StructureMap 的对象工厂的类位于 UI 层,那么您可以使用的另一个选项是直接从 HttpContext.Items 获取嵌套容器.这有点脏,但可以做到。

关于dependency-injection - 如何在 StructureMap 3 中替换 ObjectFactory 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711118/

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