Maison  >  Article  >  développement back-end  >  Explication détaillée de la sérialisation dans .net

Explication détaillée de la sérialisation dans .net

PHPz
PHPzoriginal
2017-04-03 11:59:161465parcourir

Sérialisation dans .net

Formats et méthodes de sérialisation courants

Dans .net, les formats de sérialisation courants incluent principalement json, binaire et xml, résumés dans le tableau suivant .

Explication détaillée de la sérialisation dans .net

Retour en haut

Notes

À propos des règles d'annotation des attributs d'entité :

1, tout en .net La marque [Sérialisable] doit être ajoutée à la classe de l'entité utilisée pour la sérialisation. Sinon, il n'y aura aucun problème lors de la sérialisation json, mais une erreur sera signalée lors de l'utilisation de BinaryFormatter pour la sérialisation binaire.

2. Si elles sont appliquées dans WCF, les balises [DataContract] doivent être ajoutées aux classes de toutes les entités et [DataMember] doivent être ajoutées aux champs.

3. Lors de l'utilisation de newtonsoft.json, si [DataContract] est ajouté à la classe d'entité, [DataMember] est ajouté à certains champs, et certains champs ne sont pas ajoutés, mais ceux qui ne sont pas ajoutés doivent également l'être. inclus lors de la sérialisation. Les champs [DataMember] peuvent être résolus en ajoutant [JsonObject(MemberSerialization.OptOut)] à la classe d'entité, ce qui signifie afficher tous les champs publics.

4. Lors de l'utilisation de newtonsoft.json, System.Web.UI.WebControls.ListItem ne peut pas être sérialisé. La solution consiste à personnaliser une classe et à la marquer [Sérialisable].

Retour en haut

Résumé

1. S'il s'agit du format json, NewtonSoft.Json est le plus polyvalent (peut gérer les références circulaires), bien qu'il ne soit pas le plus rapide. .

2. S'il est au format XML, utilisez le XmlSerializer fourni avec .net.

3. S'il s'agit d'un format binaire, utilisez le BinaryFormatter fourni avec .net Bien que Protobuf soit rapide, il est difficile d'ajouter le numéro de série.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn