Udostępnij za pośrednictwem


ObjectStateFormatter Klasa

Definicja

Serializuje i deserializuje wykresy obiektów, które reprezentują stan obiektu. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
ObjectStateFormatter
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano, jak klasa pochodząca z PageStatePersister klasy uzyskuje dostęp do StateFormatter właściwości w celu pobrania ObjectStateFormatter wystąpienia w celu serializacji stanu widoku i stanu kontroli do strumienia. Ten przykład kodu jest częścią większego przykładu podanego PageStatePersister dla klasy.

//
// 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

Uwagi

Ostrzeżenie

BinaryFormatter jest niezabezpieczony i nie może być zabezpieczony. Aby uzyskać więcej informacji, zobacz Przewodnik po zabezpieczeniach BinaryFormatter.

Klasa ObjectStateFormatter serializuje i deserializuje wykresy stanu obiektu w formacie kompaktowym.

ObjectStateFormatter jest używany przez klasę PageStatePersister i klasy, które pochodzą z niej, aby serializować stan widoku i stan kontroli. Jest ona również używana przez klasę LosFormatter w celu zapewnienia formatowania wykresu stanu obiektu dla różnych części infrastruktury ASP.NET.

Klasa ObjectStateFormatter jest zoptymalizowana pod kątem serializacji i formatowania wielu typowych typów odwołań .NET Framework, a także stałych. W poniższej tabeli wymieniono typy zoptymalizowane.

Array DateTime Int16 String
ArrayList Double Int32 Ciąg []
Boolean Enum null (Nothing) String.Empty
Byte Hashtable Pair Triplet
Char HybridDictionary Single Type
Color IDictionary

Ponadto, podczas gdy konwencjonalne typy ciągów i tablice ciągów są zapisywane do i z serializowanego składnika zapisywania binarnego niezracjonalizowane, niektóre ciągi są zoptymalizowane przez tworzenie wewnętrznych tabel ciągów. Ciągi są zoptymalizowane przy użyciu tych tabel, jeśli ciąg ma skojarzony TypeConverter obiekt lub czy ciąg jest w rzeczywistości wystąpieniem IndexedString klasy.

Inne typy, które nie zostały wymienione powyżej, są serializowane binarnie przy użyciu BinaryFormatter obiektu, jeśli implementują ISerializable interfejs lub są ozdobione atrybutem SerializableAttribute . Klasa ObjectStateFormatter nie jest zoptymalizowana pod kątem żadnego z tych typów serializacji.

ObjectStateFormatter Jeśli klasa napotka typ, który nie można serializować, ArgumentException zostanie zgłoszony wyjątek.

Konstruktory

ObjectStateFormatter()

Inicjuje nowe wystąpienie klasy ObjectStateFormatter.

Metody

Deserialize(Stream)

Deserializuje wykres stanu obiektu z postaci z serializacji binarnej zawartej w określonym Stream obiekcie.

Deserialize(String)

Deserializuje graf stanu obiektu z serializacji postaci ciągów zakodowanych w formacie base64.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Serialize(Object)

Serializuje wykres stanu obiektu na ciąg zakodowany w formacie base64.

Serialize(Stream, Object)

Serializuje wykres stanu obiektu do określonego Stream obiektu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IFormatter.Binder

Aby uzyskać opis tego elementu członkowskiego, zobacz Binder.

IFormatter.Context

Aby uzyskać opis tego elementu członkowskiego, zobacz Context.

IFormatter.Deserialize(Stream)

Aby uzyskać opis tego elementu członkowskiego, zobacz Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Aby uzyskać opis tego elementu członkowskiego, zobacz Serialize(Stream, Object).

IFormatter.SurrogateSelector

Aby uzyskać opis tego elementu członkowskiego, zobacz SurrogateSelector.

IStateFormatter.Deserialize(String)

Aby uzyskać opis tego elementu członkowskiego, zobacz Deserialize(String).

IStateFormatter.Serialize(Object)

Aby uzyskać opis tego elementu członkowskiego, zobacz Serialize(Object).

Dotyczy