首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StructureMap,ObjectFactory和IContainer

StructureMap,ObjectFactory和IContainer
EN

Stack Overflow用户
提问于 2010-01-26 18:06:21
回答 1查看 4K关注 0票数 2

为了满足我的StructureMap需求,我正在与IoC合作。

为了使测试变得愉快,我将尽可能地传递IContainer实例,通常作为构造函数参数。为了方便起见,我想回到使用ObjectFactory作为无参数构造函数的问题上。

最简单的方法(我想)就是简单地获得IContainer -- ObjectFactory类--并将其传递给其他构造函数。不幸的是,我找不到这个实例公开公开的地方。

问题是:

是否有一种方法可以在IContainer中获得ObjectFactory,这样我就可以像用户提供的实例一样简单地处理它?

或者,是否有方法将ObjectFactory的配置复制到一个新的Container实例中?

示例:

我希望能够做到以下几点:

代码语言:javascript
复制
public class MyClass
{
    public MyClass()
    {
        Container = ... // The ObjectFactory container instance.
    }

    public MyClass(IContainer container)
    {
        Container = container;
    }

    public IContainer Container { get; private set; }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-26 21:16:40

ObjectFactory公开一个容器属性,该属性为您提供要查找的IContainer。

无论何时您需要一个IContainer (不应该经常使用),您都可以在类ctor中使用它的依赖项。

代码语言:javascript
复制
public class INeedAContainer
{
    private readonly IContainer _container;

    public INeedAContainer(IContainer container)
    {
        _container = container;
    }

    // do stuff
}

我不认为有什么方法可以克隆IContainer。有一个container.GetNestedContainer()方法,它允许您在嵌套容器的生存期内保持瞬态不变。嵌套容器通常在“使用”语句中使用,对于控制数据库事务边界等事物的状态非常方便。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2141519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档