对我来说似乎很简单,但没有按预期工作。来源类:
public class SourceTest
{
private string _field1;
public string Field1
{
get
{
return _field1;
}
set
{
_field1 = value;
}
}
}
目的地类:
public class DestTest
{
private string _field1;
public string Field1
{
get
{
return _field1;
}
set
{
_field1 = value.ToUpper();
}
}
}
关键是目标类正在格式化输入值。
测试代码:
Mapper.Initialize(cfg =>
{
cfg.BindingFlags = BindingFlags.Public | BindingFlags.Instance BindingFlags.NonPublic;
});
SourceTest st = new SourceTest();
st.Field1 = "John";
DestTest dt = new DestTest();
AutoMapper.Mapper.CreateMap<SourceTest, DestTest>();
AutoMapper.Mapper.Map<SourceTest, DestTest>(st, dt);
MessageBox.Show(dt.Field1);
目标对象的Field1不是大写的。调用set代码,因为我可以在其中放置一个断点。
这只是支持吗?我认为这是一个常见的要求 - 用户在一个对象中输入数据,但我们想在目标对象中处理它。它是mapper.initialize,包括非公共字段,这是问题。
提前致谢,
雷