Serializace (Visual Basic)

Serializace je proces převodu objektu na datový proud bajtů za účelem uložení objektu nebo jeho přenosu do paměti, databáze nebo souboru. Jeho hlavním účelem je uložit stav objektu, aby ho bylo možné v případě potřeby znovu vytvořit. Reverzní proces se nazývá deserializace.

Principy serializace

Tento obrázek znázorňuje celkový proces serializace.

Serialization graphic

Objekt je serializován do datového proudu, který nese nejen data, ale informace o typu objektu, jako je jeho verze, jazyková verze a název sestavení. Z daného datového proudu je možné ho uložit do databáze, souboru nebo paměti.

Možnosti použití serializace

Serializace umožňuje vývojáři uložit stav objektu a podle potřeby ho znovu vytvořit, což poskytuje úložiště objektů a výměnu dat. Prostřednictvím serializace může vývojář provádět akce, jako je odeslání objektu do vzdálené aplikace prostřednictvím webové služby, předání objektu z jedné domény do druhé, předání objektu přes bránu firewall jako řetězec XML nebo udržování informací specifických pro uživatele napříč aplikacemi.

Umožnění serializace objektu

Chcete-li serializovat objekt, potřebujete objekt serializovat, datový proud, který bude obsahovat serializovaný objekt a a Formatter. System.Runtime.Serialization obsahuje třídy nezbytné pro serializaci a deserializaci objektů.

SerializableAttribute Použijte atribut na typ, který označuje, že instance tohoto typu lze serializovat. Výjimku SerializationException vyvoláte, pokud se pokusíte serializovat, ale typ nemá SerializableAttribute atribut.

Pokud nechcete, aby pole v rámci třídy bylo serializovatelné, použijte NonSerializedAttribute atribut. Pokud pole serializovatelného typu obsahuje ukazatel, popisovač nebo jinou datovou strukturu, která je specifická pro konkrétní prostředí, a pole nemůže být smysluplně rekonstituováno v jiném prostředí, můžete ho chtít nastavit jako neserializovatelný.

Pokud serializovaná třída obsahuje odkazy na objekty jiných tříd, které jsou označeny SerializableAttribute, tyto objekty budou také serializovány.

Binární serializace a serializace XML

Lze použít binární serializaci nebo serializaci XML. V binární serializaci jsou serializovány všechny členy, i ty, které jsou jen pro čtení, a výkon je vylepšen. Serializace XML poskytuje čitelnější kód, stejně jako větší flexibilitu sdílení objektů a použití pro účely interoperability.

Binární serializace

Binární serializace používá binární kódování k vytvoření kompaktní serializace pro použití, jako je úložiště nebo síťové streamy založené na soketu.

Serializace XML

Serializace XML serializuje veřejná pole a vlastnosti objektu, nebo parametry a návratové hodnoty metod, do datového proudu XML, který odpovídá určitému dokumentu XSD (XML Schema Definition Language). Serializace XML má za následek třídy silného typu s veřejnými vlastnostmi a poli, které jsou převedeny na XML. System.Xml.Serialization obsahuje třídy nezbytné pro serializaci a deserializaci XML.

Atributy můžete použít u tříd a členů třídy, abyste mohli řídit způsob XmlSerializer serializace nebo deserializace instance třídy.

Základní a vlastní serializace

Serializace lze provádět dvěma způsoby, základními a vlastními. Základní serializace používá .NET Framework k automatické serializaci objektu.

Základní serializace

Jediným požadavkem v základní serializaci je, že objekt má SerializableAttribute použitý atribut. Dá NonSerializedAttribute se použít k zachování serializace konkrétních polí.

Při použití základní serializace může správa verzí objektů vytvořit problémy, v takovém případě vlastní serializace může být vhodnější. Základní serializace je nejjednodušší způsob, jak provést serializaci, ale neposkytuje velkou kontrolu nad procesem.

Vlastní serializace

Ve vlastní serializaci můžete přesně určit, které objekty budou serializovány a jak bude provedeno. Třída musí být označena SerializableAttribute a implementovat ISerializable rozhraní.

Pokud chcete, aby byl objekt deserializován vlastním způsobem, musíte použít vlastní konstruktor.

Serializace s použitím návrháře

Serializace návrháře je speciální forma serializace, která zahrnuje druh trvalosti objektů obvykle spojené s vývojářskými nástroji. Serializace návrháře je proces převodu grafu objektu na zdrojový soubor, který lze později použít k obnovení grafu objektu. Zdrojový soubor může obsahovat kód, revize nebo dokonce SQL informace o tabulce.

Související témata a příklady

Návod: Uchování objektu v Visual Studio (Visual Basic)
Ukazuje, jak lze serializace použít k zachování dat objektu mezi instancemi, což umožňuje uložit hodnoty a načíst je při příštím vytvoření instance objektu.

Postupy: Čtení dat objektů ze souboru XML (Visual Basic)
Ukazuje, jak číst data objektů, která byla dříve zapsána do souboru XML pomocí XmlSerializer třídy.

Postupy: Zápis dat objektu do souboru XML (Visual Basic)
Ukazuje, jak zapisovat objekt z třídy do souboru XML pomocí XmlSerializer třídy.