Profile konfigurieren

Zweck von Profile: Eine große Anzahl von Mapping-Regeln in eine eigenständige Klasse auslagern, statt alles in der Main-Methode zu sammeln, um das Verwalten von Mappings für mehrere Entitäten zu erleichtern.

1. Benutzerdefinierte Profile-Klasse

Erben Sie von AutoMappers Profile, schreiben Sie die Mapping-Beziehungen in den Konstruktor und können Sie mehrere CreateMap-Aufrufe auf einmal notieren.

using AutoMapper;

/// <summary>
/// Mapping-Konfigurationsklasse
/// </summary>
public class MappingProfile : Profile
{
    public MappingProfile()
    {
        // Person → People
        CreateMap<Person, People>();
        // People → Person, bidirektionales Mapping
        CreateMap<People, Person>();
    }
}
// [Übersetzung des Chinesischen im Codeblock]
// Mapping-Konfigurationsklasse
// Person → People
// Bidirektionales Mapping
Code-Sprache: HTML, XML (xml)

Methode 1: Profile bei der Initialisierung hinzufügen

Mapper.Initialize(x => x.AddProfile<MappingProfile>());
Code-Sprache: JavaScript (javascript)

Methode 2: Vollständige Schreibweise, Profile-Objekt instanziieren

var mc = new MapperConfigurationExpression();
mc.AddProfile(new MappingProfile());
Mapper.Initialize(mc);
// [Übersetzung des Chinesischen im Codeblock]
// Profile-Objekt instanziieren
Code-Sprache: JavaScript (javascript)

2. Mehrere Profile laden

Wenn das Projekt komplexer wird, werden mehrere Profile-Klassen aufgeteilt. Sie können alle auf einmal registrieren:

Mapper.Initialize(x =>
{
    x.AddProfile<MappingProfile>();
    x.AddProfile<MappingProfile2>();
});
Code-Sprache: HTML, XML (xml)

Vollständiges Program-Beispiel

class Program
{
    static void Main(string[] args)
    {
        // ========= Konfiguration: Profile-Mapping laden =========
        Mapper.Initialize(x => x.AddProfile<MappingProfile>());

        // Quellobjekt, Zielobjekt
        Person p = new Person()
        {
            Age = 12,
            Name = "Tom",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 10000
        };

        People peo = new People()
        {
            Age = 36,
            Name = "Jack",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 102000
        };

        // Vorwärts-Mapping Person → People
        Mapper.Map(p, peo);
        // Rückwärts-Mapping People → Person
        Mapper.Map(peo, p);

        Console.WriteLine(peo.Name);
        Console.WriteLine(p.Name);
        Console.ReadKey();
    }
}
// [Übersetzung des Chinesischen im Codeblock]
// Konfiguration: Profile-Mapping laden
// Quellobjekt, Zielobjekt
// Vorwärts-Mapping Person → People
// Rückwärts-Mapping People → Person
Code-Sprache: JavaScript (javascript)

Profile konfigurieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert