采用以下示例:
public class Parent
{
public string Id {get; set;}
public Parent(string id)
{
Id = id;
}
}
public class Child : Parent
{
public string Name {get; set;}
public Child(string id, string name) : base(id) // <-- call base constructor
{
Name = name;
}
}
这是关于如何在基类中设置属性的典型示例。
现在说我的基类包含50个属性。
我知道我可以逐行设置每个属性,但我想知道是否可以使用AutoMapper来填充属性?
我想在基类中做这样的事情:
public class MyClass
{
public MyClassMapData(MY_DATA data)
{
// DOC_TRACK_MAIN
var config = new MapperConfiguration(c =>
{
c.CreateMap<MY_DATA , MyClass>();
});
// This will map the first 45 properties.
var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData);
// DOC_TRACK_DETAILS
mappedData.PROP_46 = data.Field1;
mappedData.PROP_47 = data.Field2;
mappedData.PROP_48 = data.Field3;
mappedData.PROP_49 = data.Field4;
mappedData.PROP_50 = data.Field5;
// How would I set mappedData to my current instance?
}
// My 50 properties...
}
答案 0 :(得分:0)
如果我理解正确,您希望将mappedData映射到当前类。如果您将行var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData);
更改为config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData, this);
,则应将该数据映射到您的班级。然后你可以手动设置PROP_46 - PROP_50