【问题标题】:Passing an object to class constructor in runtime using structuremap使用结构映射在运行时将对象传递给类构造函数
【发布时间】:2020-08-22 04:10:53
【问题描述】:

我的项目中有以下课程:

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

并使用以下代码在结构图中注册:

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>();

但是传递给frmdto值和我传递的不一样(Id = 43, ....),它是MyDto类的默认值(Id = 0, .. .)。 问题出在哪里?

【问题讨论】:

    标签: c# inversion-of-control structuremap constructor-injection


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-04
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多