ObjectStateFormatter Класс

Определение

Сериализует и десериализует графы объектов, которые представляют состояние объекта. Этот класс не наследуется.

public ref class ObjectStateFormatter sealed : System::Runtime::Serialization::IFormatter, System::Web::UI::IStateFormatter
public ref class ObjectStateFormatter sealed : System::Runtime::Serialization::IFormatter
public sealed class ObjectStateFormatter : System.Runtime.Serialization.IFormatter, System.Web.UI.IStateFormatter
public sealed class ObjectStateFormatter : System.Runtime.Serialization.IFormatter
type ObjectStateFormatter = class
    interface IStateFormatter
    interface IFormatter
Public NotInheritable Class ObjectStateFormatter
Implements IFormatter, IStateFormatter
Public NotInheritable Class ObjectStateFormatter
Implements IFormatter
Наследование
ObjectStateFormatter
Реализации

Примеры

В следующем примере кода показано, как класс, производный от PageStatePersister класса, обращается к StateFormatter свойству для получения ObjectStateFormatter экземпляра для сериализации состояния представления и состояния управления в поток. Этот пример кода является частью более крупного примера, предоставленного PageStatePersister для класса.

//
// Persist any ViewState and ControlState.
//
public override void Save()
{

    if (ViewState != null || ControlState != null)
    {
        if (Page.Session != null)
        {
            Stream stateStream = GetSecureStream();

            StreamWriter writer = new StreamWriter(stateStream);

            IStateFormatter formatter = this.StateFormatter;
            Pair statePair = new Pair(ViewState, ControlState);

            // Serialize the statePair object to a string.
            string serializedState = formatter.Serialize(statePair);

            writer.Write(serializedState);
            writer.Close();
            stateStream.Close();
        }
        else
        {
            throw new InvalidOperationException("Session needed for StreamPageStatePersister.");
        }
    }
}
'
' Persist any ViewState and ControlState.
'
Public Overrides Sub Save()

    If Not (ViewState Is Nothing) OrElse Not (ControlState Is Nothing) Then
        If Not (Page.Session Is Nothing) Then

            Dim stateStream As Stream
            stateStream = GetSecureStream()

            ' Write a state string, using the StateFormatter.
            Dim writer As New StreamWriter(stateStream)

            Dim formatter As IStateFormatter
            formatter = Me.StateFormatter

            Dim statePair As New Pair(ViewState, ControlState)

            Dim serializedState As String
            serializedState = formatter.Serialize(statePair)

            writer.Write(serializedState)
            writer.Close()
            stateStream.Close()
        Else
            Throw New InvalidOperationException("Session needed for StreamPageStatePersister.")
        End If
    End If
End Sub

Комментарии

Предупреждение

BinaryFormatter является небезопасным и не может быть обеспечена безопасным. Дополнительные сведения см. в разделе BinaryFormatter Security Guide.

Класс ObjectStateFormatter сериализует и десериализует графы состояния объекта в компактном формате.

ObjectStateFormatter используется классом и классами, производными PageStatePersister от него для сериализации состояния представления и состояния управления. Он также используется классом LosFormatter для предоставления форматирования графа состояния объекта для различных частей инфраструктуры ASP.NET.

Класс ObjectStateFormatter оптимизирован для сериализации и форматирования многих распространенных ссылочных типов платформа .NET Framework, а также констант. В следующей таблице перечислены типы, оптимизированные.

Array DateTime Int16 String
ArrayList Double Int32 Строка []
Boolean Enum null (Nothing) String.Empty
Byte Hashtable Pair Triplet
Char HybridDictionary Single Type
Color IDictionary

Кроме того, в то время как обычные типы строк и массивы строк записываются в сериализованный двоичный модуль записи, некоторые строки оптимизированы путем создания внутренних строковых таблиц. Строки оптимизированы с помощью этих таблиц, если строка имеет связанный TypeConverter объект или если строка фактически является экземпляром IndexedString класса.

Другие типы, не перечисленные выше, сериализуются в двоичном формате с помощью BinaryFormatter объекта, если они реализуют ISerializable интерфейс или декорируются атрибутом SerializableAttribute . Класс ObjectStateFormatter не оптимизирован для любого из этих сериализуемых типов.

ObjectStateFormatter Если класс сталкивается с типом, который не сериализуется, ArgumentException возникает исключение.

Конструкторы

ObjectStateFormatter()

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

Методы

Deserialize(Stream)

Выполняет десериализацию графа состояния объекта из двоичной сериализованной формы, которая содержится в указанном объекте Stream.

Deserialize(String)

Выполняет десериализацию графа состояния объекта из его сериализованной строковой формы на основе 64-разрядной кодировки.

Equals(Object)

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

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

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

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Serialize(Object)

Выполняет сериализацию графа состояния объекта в строку на основе 64-разрядной кодировки.

Serialize(Stream, Object)

Выполняет сериализацию графа состояния объекта в указанный объект Stream.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IFormatter.Binder

Описание этого члена см. в разделе Binder.

IFormatter.Context

Описание этого члена см. в разделе Context.

IFormatter.Deserialize(Stream)

Описание этого члена см. в разделе Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Описание этого члена см. в разделе Serialize(Stream, Object).

IFormatter.SurrogateSelector

Описание этого члена см. в разделе SurrogateSelector.

IStateFormatter.Deserialize(String)

Описание этого члена см. в разделе Deserialize(String).

IStateFormatter.Serialize(Object)

Описание этого члена см. в разделе Serialize(Object).

Применяется к