ObjectStateFormatter Klass

Definition

Serialiserar och deserialiserar objektdiagram som representerar tillståndet för ett objekt. Det går inte att ärva den här klassen.

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
Arv
ObjectStateFormatter
Implementeringar

Exempel

Följande kodexempel visar hur en klass som härleds från PageStatePersister klassen får åtkomst StateFormatter till egenskapen för att hämta en ObjectStateFormatter instans för att serialisera visningstillstånd och kontrolltillstånd till en dataström. Det här kodexemplet är en del av ett större exempel för PageStatePersister klassen.

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

Kommentarer

Varning

BinaryFormatter är osäker och kan inte göras säker. Mer information finns i säkerhetsguiden för BinaryFormatter.

Klassen ObjectStateFormatter serialiserar och deserialiserar objekttillståndsdiagram i ett kompakt format.

ObjectStateFormatter används av klassen PageStatePersister och klasserna som härleds från den för att serialisera visningstillstånd och kontrolltillstånd. Den används också av klassen LosFormatter för att tillhandahålla objekttillståndsdiagramformatering för olika delar av ASP.NET infrastruktur.

Klassen ObjectStateFormatter är optimerad för att serialisera och formatera många vanliga .NET Framework-referenstyper samt konstanter. Följande typer är optimerade:

Även om konventionella strängtyper och strängmatriser skrivs till och från en serialiserad binär skrivare som inte är upphöjt, optimeras vissa strängar genom att skapa interna strängtabeller. Strängar optimeras med hjälp av dessa tabeller om strängen har ett associerat TypeConverter objekt eller om strängen faktiskt är en instans av IndexedString klassen.

Andra typer som inte anges ovan är binär-serialiserade med hjälp av ett BinaryFormatter objekt om de implementerar ISerializable gränssnittet eller är dekorerade med SerializableAttribute attributet. Klassen ObjectStateFormatter är inte optimerad för någon av dessa serialiserbara typer.

Om klassen ObjectStateFormatter stöter på en typ som inte är serialiserbar genereras ett ArgumentException undantag.

Konstruktorer

Name Description
ObjectStateFormatter()

Initierar en ny instans av ObjectStateFormatter klassen.

Metoder

Name Description
Deserialize(Stream)

Deserialiserar ett objekttillståndsdiagram från dess binär-serialiserade form som finns i det angivna Stream objektet.

Deserialize(String)

Deserialiserar ett objekttillståndsdiagram från dess serialiserade base64-kodade strängformulär.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Serialize(Object)

Serialiserar ett objekttillståndsdiagram till en base64-kodad sträng.

Serialize(Stream, Object)

Serialiserar ett objekttillståndsdiagram till det angivna Stream objektet.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IFormatter.Binder

En beskrivning av den här medlemmen finns i Binder.

IFormatter.Context

En beskrivning av den här medlemmen finns i Context.

IFormatter.Deserialize(Stream)

En beskrivning av den här medlemmen finns i Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

En beskrivning av den här medlemmen finns i Serialize(Stream, Object).

IFormatter.SurrogateSelector

En beskrivning av den här medlemmen finns i SurrogateSelector.

IStateFormatter.Deserialize(String)

En beskrivning av den här medlemmen finns i Deserialize(String).

IStateFormatter.Serialize(Object)

En beskrivning av den här medlemmen finns i Serialize(Object).

Gäller för