使用structuremap在运行时将对象传递给类构造函数

问题描述

我的项目中有以下课程:

public partial class MyForm : BaseForm,IMyInterface
{
    public MyForm(MyDto dto)
    {
        _dto = dto;
        InitializeComponent();
    }
}

,并使用以下代码在structuremap中进行注册

ObjectFactory.Configure(x => x.For<IMyInterface>()
            .Use<MyForm>()
            .Ctor<MyDto>("MyDto"));

当我想使用该类时,我使用了以下代码

var dto = new MyDto(){
            Id = 43,From = DateTime.Now(),To = DateTime.Now().AddDays(1)};

IMyInterface frm = ObjectFactory.Container.With("MyDto")
                   .EqualTo(dto).GetInstance<IMyInterface>();

但是传递给dto的{​​{1}}值与我传递的{frm,....)不同,它是Id = 43认值class(MyDto,...)。 问题出在哪里?

解决方法

我使用以下代码解决了这个问题:

IMyInterface frm = ObjectFactory.Container
                   .With<MyDto>(dto)
                   .GetInstance<IMyInterface>();