问题描述
我的项目中有以下课程:
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>();
但是传递给dto
的{{1}}值与我传递的{frm
,....)不同,它是Id = 43
的默认值class(MyDto
,...)。
问题出在哪里?
解决方法
我使用以下代码解决了这个问题:
IMyInterface frm = ObjectFactory.Container
.With<MyDto>(dto)
.GetInstance<IMyInterface>();