Serializace (C# and Visual Basic)
Serializace je proces převodu objektu do proudu bajtů pro uložení objektu nebo na přenos do paměti, databáze nebo soubor.Jeho hlavním účelem je uložit stav objektu, aby bylo možné jej v případě potřeby znovu vytvořit.Opačný proces se nazývá rekonstrukce.
Příklady serializace naleznete v tématu Příbuzná témata a příklady dále v tomto tématu.
Princip serializace
Na tomto obrázku je znázorněn celý proces serializace.
Objekt je serializován do datového proudu, který nese nejen data, ale informace o typu objektu, například jeho název sestavení, verze a jazykové verze.Z tohoto datového proudu mohou být uloženy v databázi, souboru nebo paměti.
Použití serializace
Serializace umožňuje vývojáři k uložení stavu objektu a znovu jej podle potřeby poskytování úložiště objektů, jakož i výměnu dat.Pomocí serializace vývojář může provádět jako odeslání objektu vzdálené aplikace prostřednictvím webové služby, předejte objekt z jedné domény do jiné, předáním objektu přes bránu firewall jako řetězec ve formátu XML nebo udržování zabezpečení nebo informace specifické pro uživatele ve všech aplikacích.
Změna objektu na serializovat.
K serializaci objektu, je třeba objekt, který chcete serializovat, proudu obsahují serializovaným objektem a Formatter.System.Runtime.Serializationobsahuje třídy, které jsou nezbytné pro serializaci a rekonstrukci objektů.
Použije SerializableAttribute atribut typu označuje, že instance tohoto typu může serializovat.A SerializationException je vyvolána výjimka, pokud pokusu o serializaci, ale typ nemá SerializableAttribute atribut.
Pokud nechcete, aby pole ve vaší třídě, chcete-li být serializovatelný, použije NonSerializedAttribute atribut.Je-li pole serializovatelný typ. obsahuje ukazatel, popisovač nebo některé datové struktury, která je specifická pro konkrétní prostředí a pole nelze rekonstituovaných srozumitelně v jiném prostředí, pak můžete provést neserializovatelné.
Pokud serializovaného třída obsahuje odkazy na objekty jiných tříd, které jsou označeny SerializableAttribute, bude také serializovat objekty.
Binární a serializace XML
Lze použít binární nebo serializace XML.V binární serializace všech členů, včetně těch, které jsou jen pro čtení lze serializovat a zvýšeným výkonem.Serializace XML obsahuje kód více čitelnější, jakož i větší pružnost objekt sdílení a použití pro účely vzájemné operační součinnosti.
Binární serializace
Binární serializace používá k výrobě kompaktní serializace pro použití jako úložiště nebo datové proudy sítě založené na soketu binární kódování.
Serializace XML
Serializace XML serializuje veřejný polí a vlastností objektu, nebo parametry a návratové hodnoty metody, do proudu XML, který odpovídá určitý dokument schématu XML definici jazyka (XSD).XML serializace výsledků v typově silné třídy s veřejné vlastnosti a pole, které jsou převedeny do formátu XML.System.Xml.Serializationobsahuje třídy, které jsou nezbytné pro serializaci a rekonstrukci XML.
Můžete použít atributů tříd a členů tříd pro řízení způsobu, jakým XmlSerializer serializuje nebo deserializuje instance třídy.
Serializace SOAP
Serializace XML lze také serializovat objekty do datové proudy XML, které odpovídají specifikaci protokolu SOAP.Protokol SOAP je protokol založený na formátu XML, který je určen výhradně k přenosu volání procedur pomocí jazyka XML.Jako s normální serializace XML, atributy lze použít k řízení zpráv SOAP literál styl generované webové služby XML.
Základní a vlastní serializaci.
Serializace lze provádět dvěma způsoby, základní a vlastní.Základní serializace automaticky Serializujte objekt pomocí rozhraní.NET Framework.
Základní serializace
Jediným požadavkem základní Serialization je, že objekt má SerializableAttribute atribut.NonSerializedAttribute Lze zabránit serializovaný určitá pole.
Při použití serializace základní verzí objektů může způsobit problémy, v takovém případě může být vhodnější vlastní serializaci.Základní serializace je nejjednodušší způsob, jak provést serializace, ale neposkytuje velkou kontrolu nad procesem.
Vlastní serializaci
Ve vlastní serializaci můžete zadat přesně bude serializovat objekty a způsob provedení.Třída musí být označeny SerializableAttribute a provádět ISerializable rozhraní.
Pokud chcete, aby váš objekt rekonstruovat i vlastní způsobem, je nutné použít vlastní konstruktor.
Návrhář serializace
Návrhář serializace je speciální forma serializace, která zahrnuje typ objektu přetrvávání obvykle spojené s nástroji pro vývoj.Návrhář serializace je proces převodu objektový graf do zdrojového souboru, který lze později obnovit objekt grafu.Zdrojový soubor může obsahovat kód, značky nebo dokonce i informace o tabulce SQL.Další informace naleznete v tématu Přehled serializace návrháře.
Příbuzná témata a příklady
Návod: Uchování objektu (C# and Visual Basic)
Ukazuje, jak lze pomocí serializace uchovávat data objektu mezi instancemi, což umožňuje ukládat hodnoty a je znovu načíst při příštím vytváření instance objektu.Postupy: Čtení dat objektů ze souboru XML (C# and Visual Basic)
Ukazuje, jak číst data objektu, který byl dříve zapsána do souboru XML pomocí XmlSerializer třídy.Postupy: Zápis dat objektů do souboru XML (C# a Visual Basic)
Ukazuje, jak zapisovat objektu z třídy do souboru XML pomocí XmlSerializer třídy.