Binární serializaceBinary serialization

Serializace může být definován jako proces ukládání stavu objektu do úložiště média.Serialization can be defined as the process of storing the state of an object to a storage medium. Během tohoto procesu se veřejné a soukromé pole objektu a název třídy, včetně sestavení obsahující dané třídy, jsou převedeny do datového proudu bajtů, které jsou následně zapsána do datového proudu.During this process, the public and private fields of the object and the name of the class, including the assembly containing the class, are converted to a stream of bytes, which is then written to a data stream. Při objektu je následně deserializovat, je vytvořena přesné klon původní objekt.When the object is subsequently deserialized, an exact clone of the original object is created.

Při provádění mechanismus serializace v prostředí objektově orientované, je třeba vytvořit počet kompromisy mezi snadnost použití a flexibilitu.When implementing a serialization mechanism in an object-oriented environment, you have to make a number of tradeoffs between ease of use and flexibility. Proces můžete automatizované do značné míry, za předpokladu, že budete mít dostatečné kontrolu nad procesem.The process can be automated to a large extent, provided you are given sufficient control over the process. Například může nastat situace, kde jednoduché binární serializace není dostatečné, nebo mohou existovat konkrétní důvod, proč se rozhodnout, která pole v třídě muset být serializován.For example, situations may arise where simple binary serialization is not sufficient, or there might be a specific reason to decide which fields in a class need to be serialized. V následujících částech zkontrolujte robustní serializace mechanismus opatřeného rozhraní .NET a zvýrazněte počet důležité funkce, které slouží k úpravě proces přizpůsobit svým potřebám.The following sections examine the robust serialization mechanism provided with .NET and highlight a number of important features that allow you to customize the process to meet your needs.

Poznámka

Stav UTF-8 nebo UTF-7 objekt není zachováváno, je-li objekt je serializaci a deserializaci pomocí různých verzí rozhraní .NET Framework.The state of a UTF-8 or UTF-7 encoded object is not preserved if the object is serialized and deserialized using different .NET Framework versions.

Varování

Binární serializace může být nebezpečné.Binary serialization can be dangerous. Nikdy deserializovat data z nedůvěryhodného zdroje a nikdy round-trip serializovaná data do systémů nejsou pod vaší kontrolou.Never deserialize data from an untrusted source and never round-trip serialized data to systems not under your control.

Podle povahy binární serializace umožňuje úpravu soukromých členů uvnitř objektu a proto změnu stavu ho, doporučuje se další architektury serializace jako JSON.NET, které fungují na veřejné ploše rozhraní API.As the nature of binary serialization allows the modification of private members inside an object and therefore changing the state of it, other serialization frameworks like JSON.NET which operate on the public API surface are recommended.

Binární serializace v .NET CoreBinary serialization in .NET Core

.NET core podporuje binární serializace s několika typy..NET Core supports binary serialization with a subset of types. Zobrazí seznam typů, které Serializovatelné typy části.You can see the list of supported types in the Serializable types section. Definovanou sadu typů je zaručena serializovatelný mezi rozhraní .NET Framework 4.5.1 a novějších verzí a .NET Core 2.0 a novějších verzích.The defined set of types are guaranteed to be serializable between .NET Framework 4.5.1 and later versions and .NET Core 2.0 and later versions. Jiné implementace .NET, jako je například Mono, nejsou oficiálně podporované, ale také by měl být práce.Other .NET implementations, such as Mono, aren't officially supported but should also be working.

Serializovatelné typySerializable types

V tomto oddíluIn this section

OdkazReference

  • System.Runtime.Serialization
    Obsahuje třídy, které lze použít pro serializaci a deserializaci objektů.Contains classes that can be used for serializing and deserializing objects.