Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс SerializationInfo

 

Опубликовано: Октябрь 2016

Хранит все данные, необходимые для сериализации или десериализации объекта. Этот класс не наследуется.

Пространство имен:   System.Runtime.Serialization
Сборка:  mscorlib (в mscorlib.dll)

System.Object
  System.Runtime.Serialization.SerializationInfo

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

ИмяОписание
System_CAPS_pubmethodSerializationInfo(Type, IFormatterConverter)

Создает новый экземпляр класса SerializationInfo.

System_CAPS_pubmethodSerializationInfo(Type, IFormatterConverter, Boolean)

Инициализирует новый экземпляр класса SerializationInfo.

ИмяОписание
System_CAPS_pubpropertyAssemblyName

Возвращает или задает имя сборки типа для сериализации только во время сериализации.

System_CAPS_pubpropertyFullTypeName

Возвращает или задает полное имя Type для сериализации.

System_CAPS_pubpropertyIsAssemblyNameSetExplicit

Получает значение, указывающее имя сборки было задано явно.

System_CAPS_pubpropertyIsFullTypeNameSetExplicit

Получает значение, указывающее явно задать полное имя типа.

System_CAPS_pubpropertyMemberCount

Возвращает число элементов, которые были добавлены в SerializationInfo хранения.

System_CAPS_pubpropertyObjectType

Возвращает тип объекта для сериализации.

ИмяОписание
System_CAPS_pubmethodAddValue(String, Boolean)

Добавляет логическое значение в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Byte)

Добавляет значение 8-разрядное целое число без знака в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Char)

Добавляет значение символа Юникода в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, DateTime)

Добавляет DateTime значение в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Decimal)

Добавляет десятичное значение в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Double)

Добавляет значение с плавающей запятой двойной точности в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Int16)

Добавляет значение 16-разрядное целое число со знаком в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Int32)

Добавляет значение в 32-разрядное знаковое целое число SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Int64)

Добавляет значение в 64-разрядное знаковое целое число SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Object)

Добавляет указанный объект в SerializationInfo хранилище, где он связан с указанным именем.

System_CAPS_pubmethodAddValue(String, Object, Type)

Добавляет значение в SerializationInfo хранения, где value связанных с name и сериализуется как Typetype.

System_CAPS_pubmethodAddValue(String, SByte)

Добавляет значение 8-разрядного целого числа со знаком в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, Single)

Добавляет значение с плавающей запятой одиночной точности в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, UInt16)

Добавляет значение 16-разрядное целое число без знака в SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, UInt32)

Добавляет значение в 32-разрядное целое число без знака SerializationInfo хранения.

System_CAPS_pubmethodAddValue(String, UInt64)

Добавляет значение в 64-разрядное целое число без знака SerializationInfo хранения.

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_pubmethodGetBoolean(String)

Возвращает логическое значение из SerializationInfo хранения.

System_CAPS_pubmethodGetByte(String)

Извлекает значение 8-разрядное целое число без знака, из SerializationInfo хранения.

System_CAPS_pubmethodGetChar(String)

Извлекает значение символа Юникода из SerializationInfo хранения.

System_CAPS_pubmethodGetDateTime(String)

Извлекает DateTime значение из SerializationInfo хранения.

System_CAPS_pubmethodGetDecimal(String)

Извлекает десятичное значение из SerializationInfo хранения.

System_CAPS_pubmethodGetDouble(String)

Извлекает значение двойной точности с плавающей запятой от SerializationInfo хранения.

System_CAPS_pubmethodGetEnumerator()

Возвращает SerializationInfoEnumerator использовать для перебора пар имя значение в SerializationInfo хранения.

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetInt16(String)

Извлекает значение 16-разрядного целого числа со знаком из SerializationInfo хранения.

System_CAPS_pubmethodGetInt32(String)

Извлекает значение 32-разрядное знаковое целое число из SerializationInfo хранения.

System_CAPS_pubmethodGetInt64(String)

Извлекает значение из 64-разрядное знаковое целое число SerializationInfo хранения.

System_CAPS_pubmethodGetSByte(String)

Извлекает значение 8-разрядного целого числа со знаком из SerializationInfo хранения.

System_CAPS_pubmethodGetSingle(String)

Извлекает значение одиночной точности с плавающей запятой от SerializationInfo хранения.

System_CAPS_pubmethodGetString(String)

Извлекает String значение из SerializationInfo хранения.

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodGetUInt16(String)

Извлекает значение 16-разрядное целое число без знака, из SerializationInfo хранения.

System_CAPS_pubmethodGetUInt32(String)

Извлекает значение 32-разрядное целое число без знака, из SerializationInfo хранения.

System_CAPS_pubmethodGetUInt64(String)

Извлекает значение 64-разрядное целое число без знака, из SerializationInfo хранения.

System_CAPS_pubmethodGetValue(String, Type)

Извлекает значение из SerializationInfo хранения.

System_CAPS_pubmethodSetType(Type)

Наборы Type объекта для сериализации.

System_CAPS_pubmethodToString()

Возвращает строковое представление текущего объекта.
(Наследуется от Object.)

Этот класс используется объектами с пользовательскими характеристиками сериализации. GetObjectData Метод ISerializable или ISerializationSurrogate заполняет SerializationInfo хранения с именем, тип и значение каждого фрагмента данных, которые необходимо сериализовать. Во время десериализации соответствующую функцию можно извлечь эту информацию.

Объекты добавляются в SerializationInfo хранения во время сериализации с помощью AddValue методы и извлекаются из SerializationInfo хранения при десериализации с помощью GetValue методы.

Дополнительные сведения о настройке сериализации см. в разделе Пользовательская сериализация.

В следующем примере кода показано SerializationInfo для пользовательской сериализации и десериализации различных значений.

using System;
using System.Text;
using System.IO;
// Add references to Soap and Binary formatters.
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap ;
using System.Runtime.Serialization;


[Serializable]
public class MyItemType : ISerializable
{
    public MyItemType()
    {
        // Empty constructor required to compile.
    }

    // The value to serialize.
    private string myProperty_value;

    public string MyProperty
    {
        get { return myProperty_value; }
        set { myProperty_value = value; }
    }

    // Implement this method to serialize data. The method is called 
    // on serialization.
    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        // Use the AddValue method to specify serialized values.
        info.AddValue("props", myProperty_value, typeof(string));

    }

    // The special constructor is used to deserialize values.
    public MyItemType(SerializationInfo info, StreamingContext context)
    {
        // Reset the property value using the GetValue method.
        myProperty_value = (string) info.GetValue("props", typeof(string));
    }
}

// This is a console application. 
public static class Test
{
    static void Main()
    {
        // This is the name of the file holding the data. You can use any file extension you like.
        string fileName = "dataStuff.myData";

        // Use a BinaryFormatter or SoapFormatter.
        IFormatter formatter = new BinaryFormatter();
        //IFormatter formatter = new SoapFormatter();

        Test.SerializeItem(fileName, formatter); // Serialize an instance of the class.
        Test.DeserializeItem(fileName, formatter); // Deserialize the instance.
        Console.WriteLine("Done");
        Console.ReadLine();
    }

    public static void SerializeItem(string fileName, IFormatter formatter)
    {
        // Create an instance of the type and serialize it.
        MyItemType t = new MyItemType();
        t.MyProperty = "Hello World";

        FileStream s = new FileStream(fileName , FileMode.Create);
        formatter.Serialize(s, t);            
        s.Close();
    }


    public static void DeserializeItem(string fileName, IFormatter formatter)
    {
        FileStream s = new FileStream(fileName, FileMode.Open);
        MyItemType t = (MyItemType)formatter.Deserialize(s);
        Console.WriteLine(t.MyProperty);            
    }       
}

.NET Framework
Доступно с 1.1

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: