Ich arbeite mit XML -Deserialisierung in C#und verwende eine Teilklasse, um die Struktur der XML zuzuordnen. Diese Klasse wird separat erzeugt und aufrechterhalten, sodass ich ihre vorhandene Struktur nicht ändern kann. Ich möchte diese zusätzlichen Felder erfassen oder verarbeiten, ohne die vorhandene Teilklasse zu ändern oder ihre aktuelle Struktur zu beeinflussen. /> Ich arbeite an der Deserialisierung einer XML -Datei in ein C# -Modell mit XMLSerializer. Der XML sieht so aus: < /p>
TEST
TEST
test
test
< /code>
Ich habe eine Teilklasse für die bekannten Felder wie Bekannterattribute definiert, aber ich möchte auch unbekannte Elemente (wie unbekanntAttribute) während der Deserialisierung erfassen. Die XMLHelper -Klasse verwendet XMLSerializer. Das Deserialisierte Modell behält diese unbekannten Elemente jedoch nicht bei oder enthüllt sie nicht, und ich kann sie nicht "anhängen" oder mit dem Modell oder seinen Kindern zurückgreifen. < /P>
`serializer.UnknownElement += (s, e) =>
{
UnknownElements.Add(new UnknownElementInfo
{
ElementName = e.Element.Name,
ElementValue = e.Element.InnerText,
ParentType = e.ObjectBeingDeserialized?.GetType().Name,
ParentId = e.ObjectBeingDeserialized?.GetType().GetProperty("Id")?.GetValue(e.ObjectBeingDeserialized)?.ToString()
});
};
`
< /code>
Was ich ausprobiert habe:
Unbekannte Elemente über Ereignishandler sammeln < /p>
Versuchen Sie zu reflektieren und "Unbekannte Daten zurück in das Deserialisierte Modell < /p>
Was ich will: /> Im Idealfall könnten diese in so etwas wie zusätzlichen oder erweiterten Wörterbuch pro Objekt ausgesetzt werden. Gibt es eine saubere Möglichkeit, das Modell zu erweitern, um dies zu unterstützen, oder muss ich die Objektgrafik nach der Deserialisierung manuell laufen und pflücken?
Wie gehe ich mit unbekannten XML -Elementen und -attributen während der Deserialisierung mit einer Teilklasse um? [Dupli ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post