(https://github.com/tommcclean/XContext)C# Versuch Allgemeinliste zurückkehren „Kann nicht implizit Typ umwandeln“
Ich schreibe eine Bibliothek, speichert und ruft Daten unter Verwendung von XML-Dateien auf dem Dateisystem. Eine Klasse namens XMemory soll die einmal abgerufenen Werte wie einen Cache speichern.
Schritt 1: Laden Sie die XML-Datei von einem beliebigen Objekt. Verwenden von serialisiertem XML, das in einer Datei gespeichert ist.
DemoEntity.
Schritt 2: XML in eine Liste des Objekts deserialisieren.
List<DemoEntity>.
Schritt 3: Speichern Sie die Liste des Objekts in einer Klasseneigenschaft für den späteren Abruf.
Problem: Ich verwende T, damit ich zur Laufzeit Objekte übergeben kann. Ich kann nicht aus der Liste im Speicher abrufen und als Liste zurückgeben.
Hinweis: XEntity ist eine Schnittstelle, die jedes unterstützte Objekt implementieren muss, um diese Bibliothek zu verwenden.
internal class XMemory
{
private List<List<XEntity>> EntityContents { get; set; } = new List<List<XEntity>>();
internal List<T> Read<T>()
{
var entityContent = EntityContents.FirstOrDefault();
return entityContent;
}
}
Der Fehler lautet: „Kann nicht implizit
Ich verstehe nicht, was der Zweck von Generika hier ist. Hast du ein praktisches Beispiel? –
Ich möchte diese Bibliothek als Referenz in anderen Projekten hinzufügen können. Dieses Projekt wird die in meinen anderen Projekten erstellten Objekte nicht kennen. Also verwende ich T aus diesem Grund. So kann ich ein Objekt erstellen und die Bibliothek in XML serialisieren und später abrufen –
Entschuldigung, wenn ich das Problem nicht gut erklären kann. Ich habe einen Link zu meinem Projekt hinzugefügt, wenn das hilft (https://github.com/tommcclean/XContext) Das Demo-Projekt hebt hervor, was ich erreichen möchte –