Ich suche ein Objekt-zu-Objekt-Mapper, die Folgendes tun:Klasse basiert Converter für Object-to-Object Mapper
Gegeben:
class Source
{
string FirstName;
string LastName;
DateTime DateOfBirth;
}
und
class Target
{
string FirstName;
string FamilyName;
string FullName;
int Age;
bool IsMinor;
}
Source
und Target
als unberührbarer 3rd-Party-Code.
Ich möchte in der Lage sein, eine Konvention zur Verfügung zu stellen (Namens-) basierte Konverter Klasse wie folgt:
class Converter
{
// field
public DateTime CurrentDate;
// map LastName to FamilyName
string FamilyName(string lastName) => lastName;
// map FirstName & LastName to FullName
string FullName(string firstName, string lastName) => firstName + " " + lastName;
// map DateOfBirth to Age
int Age(DateTime dateOfBirth)
{
var days = (CurrentDate - dateOfBirth).TotalDays;
return (int)(days/365.25);
}
// map DateOfBirth to IsMinor
bool IsMinor(DateTime dateOfBirth) => Age(dateOfBirth) < 18;
// Note: implicit map from FirstName to FirstName
}
Und dann in der Lage sein, es wie folgt zu verwenden:
var converter = new Converter {CurrentDate = DateTime.Now};
var mapper = new Mapper<Source,Target>(converter); // any mapping lib available for this?
var targetObject = mapper.Convert(sourceObject);
Sind Gibt es dafür irgendwelche .Net Mapping-Bibliotheken?
Wenn ja, kann jemand ein Beispiel geben, wie es geht?
vielleicht AutoMapper? – MistyK
Ich habe AutoMapper angeschaut, konnte aber keinen Weg finden, dies zu tun. Können Sie einen Beispielcode bereitstellen? – 3dGrabber