Quels sont l'objet de la sérialisation et la désérialisation?
Quels sont l'objet sérialisation et désérialisation?
Quelle est la différence de sérialisation avoir avec les techniques habituelles, comme la lecture d'une des propriétés de l'objet, puis le remplissage d'un DataRow colonnes avec eux et enfin sauver la DataRow en DB?
Double Possible de Ce qui est la sérialisation d'un objet?
OriginalL'auteur odiseh | 2009-09-01
Vous devez vous connecter pour publier un commentaire.
La sérialisation se réfère généralement à la création d'une version des données (plutôt que les objets) qui peut être utilisé pour le stockage (peut-être dans un fichier), pour le transfert sur un réseau, ou peut-être juste pour le transfert entre les processus /
AppDomain
s /etc sur une seule machine.Sérialisation signifie généralement l'écriture de données comme une chaîne de caractères (pensez: xml /json) ou en tant que données binaires brutes (un
byte[]
etc). La désérialisation est le processus inverse; en prenant les données brutes (à partir d'un fichier, à partir de la réception d'une prise réseau, etc) et de la reconstruction de l'objet modèle.La différence entre l'utilisation de la base de données est qu'il n'a pas intrinsèque de tableaux de mise en page, et pas de réelle égalité à une base de données; les données peuvent être n'importe quelle forme, et tend à la carte de plus près à l'orienté objet de mise en page que pour les lignes/colonnes de la nature de tables.
La plupart des plates-formes ont une gamme de sérialisation des outils. Par exemple, il semble que vous êtes en train de parler .NET - donc
BinaryFormatter
(.NET-spécifique),XmlSerializer
,DataContractSerializer
, Json.NET et protobuf-net /dotnet-protobufs serait tous admissibles.OriginalL'auteur Marc Gravell
Sérialisation = mettre de l'état de l'objet dans un flux de représentation. Que peut signifier le convertir en un flux d'octets. Cela n'inclut pas nécessairement la copie à chaque membre de la variable dans le flux. Exemple classique qui est utilisé par Joshua Bloch Effective Java est un HashSet. Vous sérialiser les éléments dans le Hashset, mais pas les clés.
Désérialisation = restauration d'un objet à partir d'une série de représentation et d'assurer les invariants de l'objet. La désérialisation peut être la pensée d'un autre constructeur de l'objet. Dans le cas de la HashSet mentionné ci-dessus, vous devriez créer une nouvelle HashSet et ensuite insérer les valeurs à partir du flux dans cette nouvelle structure de données.
Il n'avait rien à faire avec si ou pas, vous condenser à partir d'un "arbre" à une "à plat" de la représentation. Vous pouvez serialise à une base de données qui est toujours dans la forme d'un arbre, et deserialise. Il n'est pas pertinent.
Je ne pense pas que, en général, un db version est une version de série d'un objet. Les données contenues dans un objet peut être réparti sur plusieurs tables. L'idée de la sérialisation est la création d'une représentation qui peut être transféré peu à peu (c'est à dire en série).
OriginalL'auteur jens
Sérialisation signifie, que vous persistez votre objet dans une représentation, que vous pouvez stocker quelque part. Une façon de le faire, c'est de prendre le pointeur à l'endroit où votre objet est stocké dans la mémoire et l'écriture de chaque octet comme il est à un fichier. Depuis que la représentation est très spécifique à votre langage de programmation (et la façon dont il représente les objets dans la mémoire), une amélioration serait de convertir votre objet en Chaîne de caractères de la représentation qui a une certaine structure connue (comme XML ou JSON), de sorte que vous pouvez
a) le transfert, il est plus facile
b) Stocker et restaurer plus facilement
c) Puisque tout le monde sait comment le format est défini, tous les autres programmes peuvent lire votre objet, trop
Afin de vous mettre l'objet dans une base de données est simplement une autre forme de sérialisation, trop.
Désérialisation qui signifie que vous pouvez charger/restauration de cet objet là où vous l'avez enregistré.
OriginalL'auteur Daff
De la sérialisation est, en général, le processus d'écriture de l'état d'un objet dans votre exécution sur le disque (mais ça peut être n'importe où), et être capable de le lire de nouveau.
Efficacement, de stocker les propriétés d'un objet dans une table est une forme de sérialisation.
.NET, il existe d'autres formes:
Vous pouvez faire votre propre.
Mais en général, si vous êtes économiser de l'état de votre objet quelque part, et de le lire à nouveau dans un "live" de l'objet dans votre runtime, vous êtes serialising.
Oui, c'est pourquoi au fond, j'ai écrit "quelque part". J'ai juste oublié un "général" dans la première phrase. Vous avez raison, bien sûr.
OriginalL'auteur Noon Silk
Sérialisation
Sérialisation est le processus de conversion d'un objet ou d'un ensemble d'objets graphique dans un cours d'eau.
Désérialisation
La désérialisation est le processus de conversion de retour du flux dans un objet ou un ensemble d'objet graphique.
Voici les quelques attributs personnalisés:
[OnDeserialization] -> Il est utilisé lorsque nous avons besoin d'effectuer une action lors de la désérialisation d'un ruisseau.
[OnDeserialized] -> Il est utilisé lorsque nous en avons besoin pour réaliser une action après désérialisé du flux dans un objet. Comme la définition de l'objet de valeur de champ correctement
Ci-dessous est l'exemple
Code Appelant
OriginalL'auteur Sheo Dayal Singh