serialisieren, die nur eine Eigenschaft einer Klasse
Habe ich eine Klasse, die haben etwa 20 Mitglieder. Ich muss serialisieren mein Objekt dieser Klasse in ein XML. Aber Bedingung ist, brauche ich nur ein Element in der XML.
Wie kann ich dies tun.
BEARBEITEN : Aber irgendwann möchte ich serialisieren alle Mitglieder. So kann ich nicht verwenden, [XMLIgnore] - Attribut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie das folgende Attribut für alle die Mitglieder, die Sie nicht wollen, zu serialisieren,
Könnte man explizit implementieren die
IXmlSerializable
- Schnittstelle und Steuerung des Lesens/Schreibens der Felder selbst, basierend auf einigen externen parameter, d.h.wo
SerializationParameter.FullSerialization
ist ein Beispiel, wie Sie kontrollieren konnte, was serialisiert wird und Wann.können Sie stellen Sie [XmlIgnore] - Attribut auf allen Elementen, die Sie wollen nicht serialisiert werden.
Gibt es zwei Möglichkeiten, um die Eigenschaften von nicht-serialisierbaren in.NET die Verwendung von Attributen.
Können Sie festlegen, wie Attribute
[NonSerialized]
oder[XmlIgnore]
Wenn Sie mit der Serialisierung im Binär-oder SEIFE, die Sie verwenden sollten
[NonSerialized]
, wenn Sie serialisieren möchten Sie nur in XML, die Sie verwenden sollten[XmlIgnore]
.Also in deinem Fall ist die Antwort
[XmlIgnore]
BEARBEITEN:
Es gibt keine Möglichkeit für die Anwendung von Parametern, um Eigenschaften dynamisch.
Hier einige Infos dazu hier: Können Attribute Hinzugefügt werden dynamisch in C#? und hier Entfernen Sie C# - Attribut einer Eigenschaft dynamisch
Auch als ein workout Sie können verschiedene Exemplare der Klasse mit unterschiedlichen Attributen.
ODER
Haben Sie eine Kopie Ihrer Klasse set und alle Requisiten als serialisierbar aber füllen Sie nur die Eigenschaften, die Sie benötigen, ist dieser Weg alles andere ist null/leer und nach der Serialisierung der Klasse, solltest du die XML, die Sie benötigen.
markieren Sie die anderen Attribute
End-Eigenschaft