Nehmen Sie das folgende Beispiel:Kann AutoMapper zum Füllen von Eigenschaften einer Basisklasse verwendet werden?
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;
}
}
Dies ist ein klassisches Beispiel dafür, wie die Eigenschaft in der Basisklasse zu setzen.
Jetzt sagen meine Basisklasse enthält 50 Eigenschaften. Ich weiß, ich könnte jede Eigenschaft Zeile für Zeile festlegen, aber ich frage mich, ob ich AutoMapper verwenden könnte, um die Eigenschaften zu füllen?
Ich möchte so etwas wie dies in der Basisklasse tun:
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...
}