Serializace (Visual Basic)

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

Principy serializace

Tento obrázek ukazuje celkový proces serializace.

Grafika serializace

Objekt je serializován do datového proudu, který nestačí pouze data, ale informace o typu objektu, jako je jeho verze, jazyková verze a název sestavení. Z tohoto 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ářům uložit stav objektu a znovu ho vytvořit, a to tak, že poskytuje úložiště objektů i 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ězce XML nebo udržování informací o zabezpečení nebo specifických uživatelem napříč aplikacemi.

Umožnění serializace objektu

Pro serializaci objektu potřebujete objekt k serializaci, datový proud, který má obsahovat serializovaný objekt, a Formatter . System.Runtime.Serialization obsahuje třídy, které jsou nezbytné pro serializaci a deserializaci objektů.

Použijte SerializableAttribute atribut na typ, který označuje, že instance tohoto typu mohou být serializovány. SerializationExceptionPokud se pokusíte serializovat, ale typ nemá atribut, je vyvolána výjimka SerializableAttribute .

Pokud nechcete, aby bylo pole v rámci vaší třídy serializovatelný, použijte NonSerializedAttribute atribut. Pokud pole serializovatelný typ obsahuje ukazatel, popisovač nebo jinou strukturu dat, která je specifická pro konkrétní prostředí, a pole nemůže být smysluplně reustaveno v jiném prostředí, pak pravděpodobně budete chtít provést neserializaci.

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

Binární serializace a serializace XML

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

Binární serializace

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

Serializace XML

Serializace XML serializace veřejné pole a vlastnosti objektu nebo parametry a návratové hodnoty metod do datového proudu XML, který odpovídá konkrétní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, které jsou nezbytné pro serializaci a deserializaci kódu XML.

Můžete použít atributy na třídy a členy třídy, aby bylo možné řídit způsob, jakým XmlSerializer serializace nebo deserializace instance třídy.

Základní a vlastní serializace

Serializaci lze provádět dvěma způsoby, Basic a Custom. základní serializace používá .NET Framework k automatickému serializaci objektu.

Základní serializace

Jediným požadavkem v rámci základní serializace je, že objekt má SerializableAttribute atribut použit. NonSerializedAttributeLze použít k udržení serializace konkrétních polí.

Při použití základní serializace mohou verze objektů vytvářet problémy, v takovém případě může být vhodnější vlastní serializace. Základní serializace představuje 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 budou provedeny. Třída musí být označena SerializableAttribute a implementovat ISerializable rozhraní.

Pokud chcete, aby byl objekt rekonstruován vlastním způsobem, je nutné 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 objektu, který je obvykle přidružen k vývojářským nástrojům. Serializace návrháře je proces převodu objektu grafu na zdrojový soubor, který lze později použít k obnovení grafu objektu. zdrojový soubor může obsahovat kód, značku nebo dokonce SQL informace o tabulce.

návod: uchování objektu v Visual Studio (Visual Basic)
Ukazuje, jak lze použít serializaci k uchování dat objektu mezi instancemi, což umožňuje ukládat 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 objektů do souboru XML (Visual Basic)
Ukazuje, jak napsat objekt z třídy do souboru XML pomocí XmlSerializer třídy.