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

Serialisatie en deserialisatie in C# met voorbeeld

Serialisatie en deserialisatie in C#

Het concept van serialisatie en deserialisatie wordt gebruikt wanneer gegevens met betrekking tot objecten van de ene applicatie naar de andere moeten worden verzonden. Serialisatie wordt gebruikt om applicatiegegevens naar een bestand te exporteren. De doeltoepassing gebruikt vervolgens deserialisatie om de gegevens uit de toepassing te extraheren voor verder gebruik.

Serialisatie is een concept waarbij C#-klasseobjecten naar bestanden worden geschreven of geserialiseerd. Laten we zeggen dat je een C#-klasse had met de naam Tutorial. En de klasse heeft 2 eigenschappen van ID en Tutorials-naam.

Serialiseren kan worden gebruikt om de gegevenseigenschappen van de Tutorial-klasse rechtstreeks naar een bestand te schrijven. Deserialisatie wordt gebruikt om de gegevens uit het bestand te lezen en het Tutorial-object opnieuw te construeren.

Een object serialiseren in C#

Laten we eens kijken naar een voorbeeld van hoe we dit kunnen bereiken.

In ons voorbeeld gaan we de onderstaande stappen op hoog niveau in de code uitvoeren

  1. Maak een klasse met de naam Tutorial die 2 eigenschappen heeft, namelijk ID en Name
  2. We zullen dan een object van de klasse maken en een waarde van "1" toewijzen aan de eigenschap ID en een waarde van ".Net" aan de eigenschap name.
  3. We zullen dan serialisatie gebruiken om het bovenstaande object te serialiseren naar een bestand met de naam Voorbeeld.txt
  4. Ten slotte zullen we deserialisatie gebruiken om het object uit het bestand te deserialiseren en de waarden in de console weer te geven.

Voer de onderstaande code in het programma.cs-bestand van de consoletoepassing in.

Stap 1) Voeg de klasse toe.
De eerste stap is het toevoegen van de klasse die zal worden gebruikt voor serialisatie

Code uitleg:-

  1. De klasse die moet worden geserialiseerd, moet het kenmerk [Serializable] hebben. Dit is een sleutelwoord in C#. Dit trefwoord wordt vervolgens aan de les Tutorial toegevoegd. Als u dit kenmerk niet vermeldt, krijgt u een foutmelding wanneer u de klasse probeert te serialiseren.
  2. Het volgende is de definitie van de klasse die geserialiseerd zal worden. Hier definiëren we een klasse genaamd "Tutorial" en leveren we 2 eigenschappen, de ene is "ID" en de andere is "Naam".

Stap 2) Maak het object.
In deze stap zullen we eerst het object van de Tutorial-klasse maken en het serialiseren naar het bestand met de naam Voorbeeld.txt

Code uitleg:-

  1. Eerst maken we een object van de klasse Tutorial. Vervolgens wijzen we de waarde "1" toe aan ID en ".net" aan de eigenschap name.
  2. We gebruiken dan de formatter-klasse die wordt gebruikt om het object te serialiseren of om te zetten naar een binair formaat. De gegevens in het bestand in serialisatie worden gedaan in binair formaat. Vervolgens maken we een bestandsstroomobject. Het bestandsstroomobject wordt gebruikt om het bestand Voorbeeld.txt te openen voor schrijfdoeleinden. De trefwoorden FileMode.Create en FileMode.Write worden gebruikt om specifiek te vermelden dat het bestand moet worden geopend voor schrijfdoeleinden.
  3. Ten slotte gebruiken we de methode Serialize om de binaire gegevens naar het bestand over te brengen. We sluiten dan de stream, aangezien de schrijfbewerking is voltooid.

Stap 3) Gebruik deserialisatie.
Om er ten slotte voor te zorgen dat de gegevens in het bestand aanwezig zijn, gebruiken we deserialisatie om het object uit het bestand te deserialiseren.

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 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. We maken het object "stream" om het bestand Voorbeeld.txt in alleen-lezen modus te openen.
  2. We gebruiken dan de formatter-klasse die wordt gebruikt om het object te deserialiseren, dat is opgeslagen in het bestand Voorbeeld.txt. Het geretourneerde object is ingesteld op het object objnew.
  3. Ten slotte tonen we de eigenschappen van het object "objnew" aan de console met behulp van de eigenschappen "ID" en "name".

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.

Uitvoer:-

U kunt aan de bovenstaande uitvoer zien dat de waarden uit het bestand correct zijn gedeserialiseerd en in de console zijn weergegeven.

Samenvatting

Serialisatie wordt gebruikt om klasseobjecten naar bestanden te schrijven.

De-serialisatie wordt gebruikt om de objecten uit het bestand te herstellen.


C Taal

  1. C# klasse en object
  2. C# abstracte klasse en methode
  3. C# Gedeeltelijke klasse en gedeeltelijke methode
  4. C# verzegelde klasse en methode
  5. Java-bestandsklasse
  6. Operators in C++ met voorbeeld:wat is, typen en programma's
  7. C++ klasse en object met voorbeeld
  8. Verschil tussen structuur en klasse:uitgelegd met C++-voorbeeld
  9. C# Abstract Class-zelfstudie met voorbeeld:wat is abstractie?
  10. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  11. type() en isinstance() in Python met voorbeelden