【问题标题】:StructureMap - Replacing ObjectFactory with Container when initialisingStructureMap - 初始化时用 Container 替换 ObjectFactory
【发布时间】:2014-09-03 14:53:19
【问题描述】:

我正在尝试更新我的代码以删除 ObjectFactory 的使用并只传递 IContainer 对象,但是我遇到的一个问题是,在我初始化 SM 的代码中,我需要访问容器。例如:

    var container = new Container(x =>
        {
            x.For<IFoo>().Use(() => new Bar(ObjectFactory.GetInstance<IApplicationSettings>().MyConnectionString));
        });

无法更新 Bar 类以注入 IApplicationSettings。有什么办法可以在这里替换 ObjectFactory 的用法吗?

【问题讨论】:

    标签: structuremap


    【解决方案1】:
    var container = new Container(x =>
    {
        x.For<IFoo>().Use(c => new Bar(
            c.GetInstance<IApplicationSettings().MyConnectionString));
    });
    

    应该可以。

    Use 方法的重载采用 IContext lambda,可用于访问容器。

    【讨论】:

    • 啊,我怎么错过了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多