Beispiele für AutoMapper-Anwendungen in C#
Ich habe kürzlich eine interessante Sache namens AutoMapper entdeckt, die hauptsächlich Model in DTO konvertiert, den Daten mehr Aufmerksamkeit schenkt und Domänenobjekte angemessen kapselt, um das Verhalten von Domänenobjekten nicht übermäßig der Präsentationsebene auszusetzen.
Schauen wir uns zunächst einige Beispiele an, die Zuordnung zwischen den beiden Klassen.
Definieren Sie zunächst zwei Klassen, Source und DTOSource:
public class Source { public int Id { get; set; } public string Content { get; set; } } public class DTOSource { public int Id { get; set; } public string Content { get; set; } }
Die Felder Source und DTOSource sind genau gleich. Der Code ist sehr einfach.
Mapper.Initialize(x=>{ x.CreateMap<Source,DTOSource>(); }); Source s = new Source{Id=1,Content="123"}; DTOSource dto = Mapper.Map<DTOSource>(s);
Der erste Schritt besteht darin, die Zuordnung zwischen Quelle und DTOSource festzulegen. Sehen Sie sich nach der Initialisierung einer Quellinstanz die Ausführungsergebnisse an:
Ausführung Abschließend können Sie sehen, dass die Daten in dto mit den Daten von s identisch sind, die zuvor initialisiert wurden. Dies ist so, als ob die beiden Klassenfeldnamen genau gleich sind Wie wäre es, wenn sich die Feldnamen in von denen in „Quelle“ unterscheiden? Tatsächlich ist es ganz einfach,
in ein wenig Code zu ändern:
Wir ändern den Feldnamen von „Inhalt“. DTOSource Change to Desc. Zu diesem Zeitpunkt müssen Sie beim Einrichten einer Zuordnungsbeziehung nur die Felder angeben:
1 Mapper.Initialize(x => { 2 x.CreateMap<Source, DTOSource>().ForMember(c=>c.Desc,q=> { 3 q.MapFrom(z => z.Content); 4 }); 5 });
, um die laufenden Ergebnisse anzuzeigen; 🎜>Sie können sehen, dass die Ergebnisse mit denen des vorherigen Laufs identisch sind.
Das Zuordnen zweier Listen ist eigentlich sehr einfach. Es ist fast dasselbe wie der obige Code. Es handelt sich lediglich um eine kleine Änderung im letzten Schritt. Wie im folgenden Code gezeigt:
Sie können sehen, dass die anderen bis auf den letzten Codesatz fast identisch sind, außer dass im letzten Codesatz der Zieltyp in List< geändert wurde ;DTOSource> Das ist es. Schauen Sie sich die Laufergebnisse an:
Mapper.Initialize(x => { x.CreateMap<Source, DTOSource>().ForMember(c => c.Desc, q => { q.MapFrom(z => z.Content); }); }); s.Add(new Source { Id = 1, Content = "123" }); var dto = Mapper.Map<List<DTOSource>>(s);
Die Ergebnisse entsprechen den Erwartungen.
In tatsächlichen Projekten erfüllt diese Schreibweise definitiv nicht die Anforderungen. Im Allgemeinen wird eine Kapselung vorgenommen und ein neues SourceProfile von Profile geerbt:
Alle Zuordnungsbeziehungen können geschrieben werden In dieser Klasse müssen Sie sie nur einmal während der Programminitialisierung aufrufen:
Die vom Blogger verwendete AutoMapper-Version ist 6.1.1.0, da AutoMapper das Profil in Version 6.0 entfernt hat Die Schreibmethode unterscheidet sich ein wenig von der Version unter 6.0. Die Schreibmethode für Versionen unter 6.0 ist:1 public SourceProfile() 2 { 3 base.CreateMap<Source, DTOSource>().ForMember(c => c.Desc, q => { 4 q.MapFrom(z => z.Content); 5 }); 6 }
1 Mapper.Initialize(x =>{ x.AddProfile<SourceProfile>(); });
In der Anwendung des MVC-Projekts können Sie Mapper.Initialize in eine Klasse kapseln
public class SourceProfile : Profile { protected override void Configure() { CreateMap<Source, DTOSource>().ForMember(c => c.Desc, q => { q.MapFrom(z => z.Content); }); } }
und es dann einmal in Global von MVC registrieren:
Das obige ist der detaillierte Inhalt vonBeispiele für AutoMapper-Anwendungen in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Ganz gleich, ob Sie Anfänger oder erfahrener Profi sind: Die Beherrschung von C# ebnet den Weg für Ihre Karriere.

Die Entwicklung von Technologien der künstlichen Intelligenz (KI) ist heute in vollem Gange und sie haben in verschiedenen Bereichen großes Potenzial und Einfluss gezeigt. Heute wird Dayao Ihnen 4 .NET Open-Source-KI-Modell-LLM-bezogene Projekt-Frameworks vorstellen und hofft, Ihnen einige Referenzen zu geben. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ist ein Open-Source-Softwareentwicklungskit (SDK), das für die Integration großer Sprachmodelle (LLM) wie OpenAI und Azure entwickelt wurde

Wenn Sie ein .NET-Entwickler sind, müssen Sie sich der Bedeutung der Optimierung von Funktionalität und Leistung bei der Bereitstellung hochwertiger Software bewusst sein. Durch den fachgerechten Einsatz der bereitgestellten Ressourcen und die Verkürzung der Ladezeiten der Website schaffen Sie nicht nur ein angenehmes Erlebnis für Ihre Nutzer, sondern senken auch die Infrastrukturkosten.

In Bezug auf die Verarbeitung von Anforderungen mit hoher Parallelität bietet .NETASP.NETCoreWebAPI eine bessere Leistung als JavaSpringMVC. Zu den Gründen gehören: AOT-Frühkompilierung, die die Startzeit verkürzt, wobei Entwickler für die Zuweisung und Freigabe von Objektspeicher verantwortlich sind.

C#.NET -Interviewfragen und Antworten umfassen Grundkenntnisse, Kernkonzepte und erweiterte Nutzung. 1) Grundkenntnisse: C# ist eine von Microsoft entwickelte objektorientierte Sprache und wird hauptsächlich im .NET-Framework verwendet. 2) Kernkonzepte: Delegation und Ereignisse ermöglichen dynamische Bindungsmethoden, und LINQ bietet leistungsstarke Abfragefunktionen. 3) Erweiterte Verwendung: Asynchrone Programmierung verbessert die Reaktionsfähigkeit und Expressionsbäume werden für die dynamische Codekonstruktion verwendet.

Das Interview mit C# Senior Developer erfordert das Mastering von Kernwissen wie asynchrones Programmieren, LINQ und interne Arbeitsprinzipien von .NET -Frameworks. 1. Asynchrones Programmieren vereinfacht die Operationen durch Async und wartet auf die Verbesserung der Anwendungsreaktionsfähigkeit. 2.LinQ betreibt Daten im SQL -Stil und achtet auf die Leistung. 3. Die CLR des Net -Frameworks verwaltet den Speicher, und die Müllsammlung muss mit Vorsicht verwendet werden.

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

Der Programmierungsprozess von C# in .NET enthält die folgenden Schritte: 1) Schreiben von C# Code, 2) Kompilieren in eine mittlere Sprache (IL) und 3), die durch die .NET -Laufzeit (CLR) ausführt. Die Vorteile von C# in .NET sind die moderne Syntax, das leistungsstarke Typsystem und die enge Integration in das .NET -Framework, das für verschiedene Entwicklungsszenarien geeignet ist, von Desktop -Anwendungen bis hin zu Webdiensten.
