Serializacja binarnaBinary serialization

Serializacja mogą być definiowane jako proces przechowywania stanu obiektu na nośniku.Serialization can be defined as the process of storing the state of an object to a storage medium. W trakcie tego procesu publiczny i prywatny pola obiektu oraz nazwę klasy, łącznie z zestawu zawierającego klasy, są konwertowane na strumień bajtów, które są następnie zapisywane do strumienia danych.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. Gdy obiekt jest następnie przeprowadzona, dokładną oryginalnego obiektu zostanie utworzony.When the object is subsequently deserialized, an exact clone of the original object is created.

Podczas wykonywania mechanizm serializacji w środowisku zorientowane obiektowo, należy wykonać liczbę wpływ na łatwość użycia i elastyczność.When implementing a serialization mechanism in an object-oriented environment, you have to make a number of tradeoffs between ease of use and flexibility. Ten proces można automatycznego w dużym stopniu, pod warunkiem, że podane są wystarczające kontrolę nad procesem.The process can be automated to a large extent, provided you are given sufficient control over the process. Na przykład może przypadki gdzie prosty Serializacja binarna nie jest wystarczająca lub może być określony Przyczyna podjęcie decyzji, które pola w klasie musi być serializowana.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. Poniższe sekcje bada ten mechanizm serializacji niezawodną udostępniane przy użyciu platformy .NET i zaznacz wiele ważnych funkcji, które umożliwiają dostosowanie procesu do swoich potrzeb.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.

Uwaga

Stan UTF-8 lub UTF-7 kodowany obiektu nie jest zachowana, jeśli obiekt jest serializacji i deserializacji za pomocą różnych wersji programu .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.

Ostrzeżenie

Serializacja binarna może być niebezpieczne.Binary serialization can be dangerous. Nigdy nie można deserializować danych z niezaufanego źródła i nigdy nie obustronne serializowane dane do systemów niebędących pod kontrolą.Never deserialize data from an untrusted source and never round-trip serialized data to systems not under your control.

Jak charakter serializacji binarnej pozwala na modyfikowanie prywatnych elementów członkowskich wewnątrz obiektu i w związku z tym zmiana stanu go, zaleca się środowisk innych serializacji, takich jak program JSON.NET działających na publicznych powierzchni interfejsu 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.

Serializacja binarna w programie .NET CoreBinary serialization in .NET Core

Program .NET core obsługuje serializacji binarnej z podzbioru typów..NET Core supports binary serialization with a subset of types. Można wyświetlić listę obsługiwanych typów w sekcja: typy możliwe do serializacji.You can see the list of supported types in the Serializable types section. Określony zbiór typów zapewniona jest możliwy do serializacji między .NET Framework 4.5.1 i nowsze wersje i .NET Core 2.0 i nowszych wersjach.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. Inne implementacje platformy .NET, takich jak platformy Mono, oficjalnie nie są obsługiwane, ale również powinny działać.Other .NET implementations, such as Mono, aren't officially supported but should also be working.

Typy z możliwością serializowaniaSerializable types

W tej sekcjiIn this section

Tematy pomocyReference

  • System.Runtime.Serialization
    Zawiera klasy, które mogą być używane do serializacji i deserializacji obiektów.Contains classes that can be used for serializing and deserializing objects.