Serializace a deserializace v C# s příkladem
Serializace a deserializace v C#
Koncept serializace a deserializace se používá vždy, když je třeba odeslat data týkající se objektů z jedné aplikace do druhé. Serializace se používá k exportu dat aplikace do souboru. Cílová aplikace poté použije deserializaci k exportu...tracdata z aplikace pro další použití.
Serializace je koncept, ve kterém jsou objekty třídy C# zapisovány nebo serializovány do souborů. Řekněme, že jste měli třídu C# s názvem Tutorial. A třída má 2 vlastnosti ID a název Tutorials.
Serializaci lze použít k přímému zápisu vlastností dat třídy Tutorial do souboru. Deserializace se používá k načtení dat ze souboru a opětovné konstrukci objektu Tutorial.
Jak serializovat objekt v C#
Podívejme se na příklad, jak toho můžeme dosáhnout.
V našem příkladu provedeme v kódu níže uvedené kroky na vysoké úrovni
- Vytvořte třídu s názvem Tutorial, která má 2 vlastnosti, jmenovitě ID a Název
- Poté vytvoříme objekt z třídy a přiřadíme hodnotu „1“ vlastnosti ID a hodnotu „.Net“ vlastnosti name.
- Potom použijeme serializaci k serializaci výše uvedeného objektu do souboru s názvem Example.txt
- Nakonec použijeme deserializaci k deserializaci objektu ze souboru a zobrazení hodnot v konzole.
Zadejte níže uvedený kód do souboru program.cs konzolové aplikace.
Krok 1) Přidejte třídu.
Prvním krokem je přidání třídy, která bude použita pro serializaci
Code Vysvětlení:-
- Třída, kterou je třeba serializovat, musí mít atribut [Serializable]. Toto je klíčové slovo v C#. Toto klíčové slovo je pak připojeno ke třídě Tutorial. Pokud tento atribut nezmíníte, při pokusu o serializaci třídy se zobrazí chyba.
- Dále je definována třída, která bude serializována. Zde definujeme třídu s názvem „Výukový program“ a poskytujeme 2 vlastnosti, jedna je „ID“ a druhá je „Název“.
Krok 2) Vytvořte objekt.
V tomto kroku nejprve vytvoříme objekt třídy Tutorial a serializujeme jej do souboru s názvem Example.txt
Code Vysvětlení:-
- Nejprve vytvoříme objekt třídy Tutorial. Poté přiřadíme hodnotu „1“ ID a „.net“ vlastnosti name.
- Poté použijeme třídu formátovače, která se používá k serializaci nebo převodu objektu do binárního formátu. Data v souboru v serializaci jsou provedena v binárním formátu. Dále vytvoříme objekt souborového proudu. Objekt file stream se používá k otevření souboru Example.txt pro účely zápisu. Klíčová slova FileMode.Create a FileMode.Write se používají ke konkrétní zmínce, že soubor by měl být otevřen pro účely zápisu.
- Nakonec použijeme metodu Serialize k přenosu binárních dat do souboru. Poté stream zavřeme od zápisu operace je kompletní.
Krok 3) Použijte deserializaci.
Nakonec, abychom zajistili, že data jsou v souboru přítomna, použijeme deserializaci k deserializaci objektu ze souboru.
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 Vysvětlení:-
- Vytváříme objekt "proud” pro otevření souboru Example.txt v režimu pouze pro čtení.
- Poté použijeme třídu formatter, která se používá k deserializaci objektu, který je uložen v souboru Example.txt. Vrácený objekt je nastaven na objekt objnew.
- Nakonec zobrazíme vlastnosti objektu „objnew“ konzoli pomocí vlastností „ID“ a „name“.
Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio, získáte níže uvedený výstup.
Výstup:-
Z výše uvedeného výstupu můžete vidět, že hodnoty ze souboru byly správně deserializovány a zobrazeny v konzole.
Shrnutí
Serializace se používá k zápisu objektů třídy do souborů.
De-serializace se používá k obnovení objektů ze souboru.




