如何在StructureMap中动态创建对象的实例?

汤姆·麦克林

我有一个名为“ ImportRunner”的抽象类。

我有一个名为“ ScorecardRunner”的类的实现。

当我从XML文件中将对象类型以字符串形式拉回并且可以是ImportRunner的任何实现时,如何在运行时获取诸如ScorecardRunner之类的类的实例?

我当前的代码如下。

var importer = container.GetInstance<ImportRunner>();

当我尝试执行以下操作时,出现编译错误。

var importer = container.GetInstance<Type.GetType("Importer.ScorecardRunner")>();

运算符“ <”不能应用于类型“方法组”和“类型”的操作数

谢谢汤姆

约瑟夫·伍德沃德

更好的方法是简单地创建一个负责确定正确的运行器实例并将其注入的工厂,而不是散布用于基于运行时值创建实例并将其拖入StructureMap注册表中的逻辑。

例如:

public class XmlReader
{
    public bool IsScoreCard { get; set; }
}

public abstract class ImportRunner
{
}

public class ScorecardRunner : ImportRunner
{
}

public class DefaultRunner : ImportRunner
{
}

public class RunnerFactory
{
    private readonly XmlReader _reader;

    public RunnerFactory(XmlReader reader)
    {
        _reader = reader;
    }

    public ImportRunner Resolve()
    {
        if (_reader.IsScoreCard)
            return new ScorecardRunner();

        return new DefaultRunner();
    }
}

然后像在注册表中这样配置它:

this.For<ImportRunner>().Use(ctx => ctx.GetInstance<RunnerFactory>().Resolve());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 JSF 中创建对象的实例

来自分类Dev

如何在JavaScript中动态创建类实例?

来自分类Dev

如何在Python中从字符串创建实例对象

来自分类Dev

如何在Javascript中创建对象的多个实例

来自分类Dev

如何在Python中创建包含类实例的对象?

来自分类Dev

如何在javascript中创建对象的新实例

来自分类Dev

动态创建对象的实例

来自分类Dev

动态创建对象的实例

来自分类Dev

如何在动态创建的函数调用中传递对象

来自分类Dev

如何在片段中为动态创建的对象充气?

来自分类Dev

如何在成员函数中创建动态对象?

来自分类Dev

如何在php中动态创建具有计数的对象?

来自分类Dev

如何在Azure Logic应用中动态创建JSON对象?

来自分类Dev

如何在TypeScript中基于只读元组动态创建对象?

来自分类Dev

如何在javascript中创建动态多维对象数组

来自分类Dev

如何在NodeJ中创建动态对象名称

来自分类Dev

如何在成员函数中创建动态对象?

来自分类Dev

如何在JavaScript中动态创建对象数组的饼图

来自分类Dev

如何在JavaScript中创建实例的实例

来自分类Dev

可以在Java中动态创建对象的实例吗?

来自分类Dev

如何在 JavaScript 中的数组上动态地在对象内创建对象

来自分类Dev

如何在StructureMap中检索所有命名实例的名称

来自分类Dev

如何在Java中实例化对象?

来自分类Dev

如何在Java中摆脱对象的实例?

来自分类Dev

如何在 Unity 中实例化对象?

来自分类Dev

如何在C ++中创建结构实例?

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

如何在VBA中的excel中创建具有文件属性的动态对象列表

Related 相关文章

热门标签

归档