Serialisierung in .net
In .net umfassen die gängigen Serialisierungsformate hauptsächlich JSON, Binär und XML, zusammengefasst in der folgenden Tabelle .
Zurück zum Anfang
Über Annotationsregeln für Entitätsattribute:
1, alles in .net Die Markierung [Serialisierbar] sollte zur Klasse der für die Serialisierung verwendeten Entität hinzugefügt werden. Andernfalls tritt bei der JSON-Serialisierung kein Problem auf, es wird jedoch ein Fehler gemeldet, wenn BinaryFormatter für die binäre Serialisierung verwendet wird.
2. Bei Anwendung in wcf sollten [DataContract]-Tags zu den Klassen aller Entitäten und [DataMember] zu den Feldern hinzugefügt werden.
3. Wenn bei Verwendung von newtonsoft.json [DataContract] zur Entitätsklasse hinzugefügt wird, wird [DataMember] zu einigen Feldern hinzugefügt, und einige Felder werden nicht hinzugefügt, diejenigen, die nicht hinzugefügt werden, sollten jedoch ebenfalls hinzugefügt werden während der Serialisierung eingeschlossen werden. [DataMember]-Felder können durch Hinzufügen von [JsonObject(MemberSerialization.OptOut)] zur Entitätsklasse gelöst werden, was bedeutet, dass alle öffentlichen Felder ausgegeben werden.
4. Bei Verwendung von newtonsoft.json kann System.Web.UI.WebControls.ListItem nicht serialisiert werden. Die Lösung besteht darin, eine Klasse anzupassen und sie als [Serialisierbar] zu markieren.
Zurück zum Anfang
1. Wenn es sich um ein JSON-Format handelt, ist NewtonSoft.Json am vielseitigsten (kann Zirkelverweise verarbeiten), obwohl es nicht das schnellste ist .
2. Wenn es im XML-Format vorliegt, verwenden Sie den XmlSerializer, der mit .net geliefert wird.
3. Wenn es sich um ein Binärformat handelt, verwenden Sie den mit .net gelieferten BinaryFormatter. Obwohl Protobuf schnell ist, ist das Hinzufügen der Seriennummer mühsam.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Serialisierung in .net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!