Je cherche un objet à objet mappeur qui peut effectuer les opérations suivantes:classe à base Converter pour objet à objet Mapper
Étant donné:
class Source
{
string FirstName;
string LastName;
DateTime DateOfBirth;
}
et
class Target
{
string FirstName;
string FamilyName;
string FullName;
int Age;
bool IsMinor;
}
Source
et Target
étant un code tiers intouchable.
Je voudrais être en mesure de fournir une convention (Name-) convertisseur à base classe comme ceci:
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
}
Et puis être en mesure de l'utiliser comme ceci:
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);
Est il y a-t-il une bibliothèque de cartographie .Net qui peut faire cela?
Si oui, quelqu'un peut-il donner un exemple comment le faire?
peut-être AutoMapper? – MistyK
J'ai regardé AutoMapper, mais je n'ai pas trouvé le moyen de le faire. Pouvez-vous fournir un exemple de code? – 3dGrabber