Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# Serialisatie & Deserialisatie: Een Praktisch Voorbeeld

Serialisatie & Deserialisatie in C#

Serialisatie en deserialisatie zijn essentieel wanneer objectdata tussen applicaties moet bewegen of over sessies moet persisteren. In C# schrijft serialisatie de staat van een object naar een opslagmedium – meestal een bestand – terwijl deserialisatie het object herstelt vanuit die opgeslagen representatie.

Overweeg een simpele class, Tutorial, die twee properties bevat: ID en Name. Door een instantie van deze class te serialiseren naar een bestand, kunnen we later het bestand lezen en hetzelfde object met de oorspronkelijke data intact hercreëren.

Hoe Een Object Te Serialiseren in C#

Hieronder is een stapsgewijze walkthrough die het proces demonstreert in een console-applicatie.

  1. Maak een Tutorial-class met de ID- en Name-properties.
  2. Instantieer de class, wijzig ID = 1 en Name = ".Net".
  3. Serialiseer het object naar een bestand genaamd Example.txt.
  4. Deserialiseer het object uit het bestand en toon de waarden op de console.

Plak de volgende code in je Program.cs bestand.

Stap 1) Voeg de class toe. De eerste stap is de class toe te voegen die geserialiseerd wordt.

C# Serialisatie & Deserialisatie: Een Praktisch Voorbeeld

Code Uitleg:

  1. De class moet gemarkeerd zijn met het [Serializable] attribuut; anders zal serialisatie falen.
  2. Definieer de Tutorial-class met twee velden: int ID en string Name.

Stap 2) Creëer het object en serialiseer het. In deze stap instantieren we het Tutorial-object en schrijven het naar Example.txt.

C# Serialisatie & Deserialisatie: Een Praktisch Voorbeeld

Code Uitleg:

  1. Maak een instantie van Tutorial en stel ID = 1 en Name = ".Net" in.
  2. Instantieer een BinaryFormatter (let op: BinaryFormatter is verouderd in .NET 5+; overweeg System.Text.Json of XmlSerializer voor productiecode).
  3. Open een FileStream in FileMode.Create en FileAccess.Write om de binaire data te schrijven.
  4. Roep formatter.Serialize aan om het object naar de stream te schrijven, sluit daarna de stream.

Stap 3) Deserialiseer het object. Ten slotte lezen we de data terug uit het bestand om het proces te verifiëren.

C# Serialisatie & Deserialisatie: Een Praktisch Voorbeeld

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace DemoApplication {
    [Serializable]
    class Tutorial {
        public int ID;
        public string Name;
        static void Main(string[] args) {
            Tutorial obj = new Tutorial();
            obj.ID = 1;
            obj.Name = ".Net";
            IFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream("E:\\ExampleNew.txt", FileMode.Create, FileAccess.Write);
            formatter.Serialize(stream, obj);
            stream.Close();
            stream = new FileStream("E:\\ExampleNew.txt", FileMode.Open, FileAccess.Read);
            Tutorial objnew = (Tutorial)formatter.Deserialize(stream);
            Console.WriteLine(objnew.ID);
            Console.WriteLine(objnew.Name);
            Console.ReadKey();
        }
    }
}

Code Uitleg:

  1. Open het bestand in leesmodus.
  2. Deserialiseer de binaire data terug naar een Tutorial-instantie.
  3. Print de ID en Name naar de console.

Het draaien van het programma in Visual Studio produceert de volgende uitvoer:

Uitvoer:

C# Serialisatie & Deserialisatie: Een Praktisch Voorbeeld

Zoals getoond, werden de waarden correct uit het bestand opgehaald.

Samenvatting

Serialisatie schrijft objectdata naar een bestand, terwijl deserialisatie die data terugleest in een object. Deze fundamentele techniek ligt aan de basis van veel .NET data-uitwisselingscenario's.

C Taal

  1. C# Classes & Objects: Fundamenten voor Robuuste OOP
  2. C# Abstract Classes & Methods: Een Praktische Gids
  3. C# Partial Classes en Methods: Een Praktische Gids
  4. C# Sealed Classes en Methods: Wanneer en Hoe Te Gebruiken
  5. C++ Operators Uitgelegd: Typen, Voorbeelden en Voorbeeldprogramma's
  6. C++ Classes & Objects: Praktische Handleiding met Code‑Voorbeelden
  7. C++ Struct vs Class: Belangrijkste Verschillen, Syntaxis en Beste Gebruikssituaties
  8. C# Abstracte Classes: Een Praktische Tutorial met Codevoorbeelden
  9. type() en isinstance() in Python begrijpen: praktische voorbeelden
  10. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
  11. Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden