ObjectStateFormatter Osztály

Definíció

Szerializálja és deszerializálja az objektum állapotát képviselő objektumdiagramokat. Ez az osztály nem örökölhető.

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
Öröklődés
ObjectStateFormatter
Megvalósítás

Példák

Az alábbi példakód bemutatja, hogy az PageStatePersister osztályból származó osztály hogyan fér hozzá a tulajdonsághoz, StateFormatter hogy lekérjen egy példányt ObjectStateFormatter a nézetállapot szerializálásához és az állapot streamhez való szabályozásához. Ez a példakód egy nagyobb, az PageStatePersister osztályhoz tartozó példa része.

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

Megjegyzések

Warning

BinaryFormatter nem biztonságos, és nem lehet biztonságossá tenni. További információt a BinaryFormatter biztonsági útmutatójában talál.

Az ObjectStateFormatter osztály tömör formátumban szerializálja és deszerializálja az objektumállapot-grafikonokat.

ObjectStateFormatter az abból származó osztály és osztályok használják PageStatePersister a nézetállapot és a vezérlőállapot szerializálására. A LosFormatter osztály is használja, hogy objektumállapot-gráfformázást biztosítson a ASP.NET-infrastruktúra különböző részeihez.

A ObjectStateFormatter osztály számos gyakori .NET Keretrendszer-referenciatípus, valamint állandók szerializálására és formázására van optimalizálva. A következő típusok vannak optimalizálva:

Emellett míg a hagyományos sztringtípusok és sztringtömbök szerializált bináris írókba és azok alapján vannak megírva, egyes sztringek belső sztringtáblák létrehozásával vannak optimalizálva. A sztringek akkor vannak optimalizálva ezekkel a táblázatokkal, ha a sztring társított objektummal TypeConverter rendelkezik, vagy ha a sztring valójában az IndexedString osztály egy példánya.

A fentiekben nem szereplő egyéb típusok bináris szerializálva vannak egy BinaryFormatter objektummal, ha implementálják az ISerializable interfészt, vagy az SerializableAttribute attribútummal vannak díszítve. Az ObjectStateFormatter osztály nincs optimalizálva ezen szerializálható típusok egyikéhez sem.

Ha az ObjectStateFormatter osztály olyan típussal találkozik, amely nem szerializálható, ArgumentException kivételt jelez.

Konstruktorok

Name Description
ObjectStateFormatter()

Inicializálja a ObjectStateFormatter osztály új példányát.

Metódusok

Name Description
Deserialize(Stream)

Deszerializál egy objektumállapot-gráfot a megadott Stream objektumban található bináris szerializált űrlapból.

Deserialize(String)

Deszerializál egy objektumállapot-gráfot a szerializált base64 kódolt sztringűrlapról.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Serialize(Object)

Egy objektumállapot-gráfot egy base64 kódolású sztringre szerializál.

Serialize(Stream, Object)

Szerializál egy objektumállapot-gráfot a megadott Stream objektumra.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
IFormatter.Binder

Ennek a tagnak a leírását lásd Binder: .

IFormatter.Context

Ennek a tagnak a leírását lásd Context: .

IFormatter.Deserialize(Stream)

Ennek a tagnak a leírását lásd Deserialize(Stream): .

IFormatter.Serialize(Stream, Object)

Ennek a tagnak a leírását lásd Serialize(Stream, Object): .

IFormatter.SurrogateSelector

Ennek a tagnak a leírását lásd SurrogateSelector: .

IStateFormatter.Deserialize(String)

Ennek a tagnak a leírását lásd Deserialize(String): .

IStateFormatter.Serialize(Object)

Ennek a tagnak a leírását lásd Serialize(Object): .

A következőre érvényes: