[英]Is it possible to use AutoMapper to populate properties of a base class?
请看以下示例:
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...
}
如果我理解正确,那么您正在将MapdData映射到当前类。 如果您更改行var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData);
到config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData, this);
这应该将数据映射到您的班级。 然后,您可以在课程上手动设置PROP_46-PROP_50
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.