Maison >développement back-end >Tutoriel C#.Net >Sérialisation d'objets C#

Sérialisation d'objets C#

PHPz
PHPzoriginal
2024-09-03 15:05:54738parcourir

Pour convertir un objet en une séquence ou un flux d'octets, le processus utilisé est appelé sérialisation. Pour la transmission d'un objet vers les bases de données, le fichier ou la mémoire, nous utilisons la sérialisation. Pour la recréation ou la récupération exacte d'un objet lorsque cela est nécessaire, la sérialisation joue un rôle crucial car elle sauvegarde l'état d'un objet. À travers cette déclaration, nous signifions qu'en utilisant un service Web, on peut transférer un objet vers n'importe quel emplacement distant, par un simple transfert d'un objet d'un domaine à un autre. Le processus inverse de sérialisation est connu sous le nom de désérialisation car il s'agit du processus de conversion d'une séquence d'octets sérialisée en objet.

Syntaxe de sérialisation d'objets C# :

Pour la sérialisation de l'objet en C#, un attribut appelé [Serialisisable]. Si l'attribut n'est pas mentionné de manière légitime, alors au moment de l'exécution, une SerialisableException est levée.

Ci-dessous la syntaxe :

public static void SomeData()
{
string aoo = "Heyoo! Thank you for visiting us....";
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None);
BinaryFormatter coo = new BinaryFormatter();
coo.Serialize(boo, aoo);
boo.Close();
}

Syntaxe de désérialisation d'objets C# :

Ci-dessous la syntaxe :

public static void AnotherData()
{
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read);
BinaryFormatter doo = new BinaryFormatter();
string eoo = "";
eoo = (string)doo.Deserialize(boo);
boo.Close();
Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple");
Console.WriteLine("\n");
Console.WriteLine(eoo);
}

Sérialisation d'objets C# à l'aide d'exemples

Discutons d'exemples de sérialisation d'objets C#.

Exemple n°1

Dans le code ci-dessous, nous devons sérialiser la classe EduCBA nous avons donc utilisé [Serialisisable]. Pour empêcher toute erreur après l’exécution du code, il convient de mentionner cet attribut. Après avoir mentionné l'attribut de la classe que nous souhaitons sérialiser, nous avons décrit les quatre propriétés de notre classe qui sont « CourseName1 » une chaîne et « CoursePrice1 » une valeur entière et de même, « CourseName2 » une chaîne et « CoursePrice2 » un entier. valeur. Pour ouvrir un fichier « E:EDUCBA.txt » en mode lecture seule, un objet bonjour est créé un objet « bonjour » et au final, nous avons affiché le « miam » en utilisant les propriétés que nous avions évoquées plus haut.

Code :

using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace Careerplan
{
[Serializable]
class EduCBA
{
public String CourseName1;
public int CoursePrice1;
public String CourseName2;
public int CoursePrice2;
static void Main(string[] rahul)
{
EduCBA yum = new EduCBA();
yum.CourseName1 = "C# Training";
yum.CoursePrice1 = 25900;
yum.CourseName2 = "C++ Training";
yum.CoursePrice2 = 28490;
IFormatter formatter = new BinaryFormatter();
Stream hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None);
formatter.Serialize(hello, yum);
hello.Close();
hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read);
hello.Close();
Console.WriteLine(yum.CourseName1);
Console.WriteLine(yum.CoursePrice1);
Console.WriteLine(yum.CourseName2);
Console.WriteLine(yum.CoursePrice2);
Console.ReadKey();
}
}
}

Sortie :

Sérialisation d'objets C#

Exemple n°2

Dans le code ci-dessous, nous devons sérialiser la classe CBA nous avons donc utilisé [Serialisisable]. Pour empêcher toute erreur après l’exécution du code, il convient de mentionner cet attribut. Après avoir mentionné l'attribut de la classe que nous souhaitons sérialiser, nous avons décrit les neuf propriétés de notre classe qui sont "student_ID1" une valeur entière et "student_name1" une chaîne et "CGPA1" une valeur double qui signifie qu'elle contient des valeurs numériques avec points décimaux et de même "student_ID2" une valeur entière et "student_name2" une chaîne et "CGPA2" une valeur double et "student_ID3" la valeur est un entier et "student_name3" une chaîne et "CGPA3" une valeur double. Pour ouvrir un fichier « E:EDUCBA.txt » en mode lecture seule, un objet hello est créé un objet « learn » et au final, nous avons affiché l'« ID » en utilisant les propriétés que nous avions mentionnées précédemment dans différentes lignes. et un texte mentionnant ce que représentent réellement les données.

Code :

using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
namespace StudentData
{
[Serializable]
class CBA
{
public int student_ID1;
public String student_name1;
public double CGPA1;
public int student_ID2;
public String student_name2;
public double CGPA2;
public int student_ID3;
public String student_name3;
public double CGPA3;
static void Main(string[] annie)
{
CBA ID = new CBA();
ID.student_ID1 = 15023456;
ID.student_name1 = "Rahul Kashyap";
ID.CGPA1 = 9.5;
ID.student_ID2 = 18023950;
ID.student_name2 = "Ankush Rajput";
ID.CGPA2 = 8.7;
ID.student_ID3 = 19084653;
ID.student_name3 = "Aadarsh Rajput";
ID.CGPA3 = 7.5;
IFormatter eduCBA = new BinaryFormatter();
Stream learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None);
eduCBA.Serialize(learn, ID);
learn.Close();
learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read);
learn.Close();
Console.Write("\n");
Console.Write("Welcome! Desired data is below");
Console.Write("\n");
Console.Write("\n");
Console.Write("::TABLE::");
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID1);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name1);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA1);
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID2);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name2);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA2);
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID3);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name3);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA3);
}
}
}

Sortie :

Sérialisation d'objets C#

Exemple #3

Dans l'exemple ci-dessous, pour la sérialisation d'un objet nous avons d'abord créé un objet stream ( FileStream) « boo » puis nous avons créé un objet pour l'objet BinaryFormatter « coo » puis nous avons appelé « coo.Serialize(boo, aoo) » qui est une méthode BinaryFormatter.Serialize() pour la sérialisation d'un objet en C#.

De même pour la désérialisation d'un objet, nous avons d'abord créé un objet stream (FileStream) « boo » qui est utilisé pour lire la sortie sérialisée puis nous avons créé un objet pour l'objet BinaryFormatter « doo » puis nous avons appelé « doo. Deserialize(boo)" qui est une méthode BinaryFormatter.Deserialize() pour la désérialisation d'un objet en C#.

Code :

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace EDUCBA
{
class Rahul
{
public static void SomeData()
{
string aoo = "Heyoo! Thank you for visiting us....";
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None);
BinaryFormatter coo = new BinaryFormatter();
coo.Serialize(boo, aoo);
boo.Close();
}
public static void AnotherData()
{
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read);
BinaryFormatter doo = new BinaryFormatter();
string eoo = "";
eoo = (string)doo.Deserialize(boo);
boo.Close();
Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple");
Console.WriteLine("\n");
Console.WriteLine(eoo);
}
static void Main(string[] foo)
{
SomeData();
AnotherData();
Console.ReadLine();
}
}
}

Sortie :

Sérialisation d'objets C#

Conclusion

Sur la base de la discussion ci-dessus, nous avons compris la sérialisation d'un objet en C# ainsi que la désérialisation du même objet en C#. Nous avons également compris l'importance de la sérialisation. Nous avons discuté de divers exemples liés à la sérialisation C# et à la désérialisation C# ainsi que les syntaxes des deux.

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
Article précédent:C# vérifier le type d'objetArticle suivant:C# vérifier le type d'objet