Condividi tramite


ObjectStateFormatter Classe

Definizione

Serializza e deserializza gli oggetti grafici che rappresentano lo stato di un oggetto. La classe non può essere ereditata.

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
Ereditarietà
ObjectStateFormatter
Implementazioni

Esempio

Nell'esempio PageStatePersister di codice seguente viene illustrato come una classe che deriva dalla classe accede StateFormatter alla proprietà per recuperare un'istanza ObjectStateFormatter per serializzare lo stato di visualizzazione e lo stato di controllo in un flusso. Questo esempio di codice fa parte di un esempio più grande fornito per la PageStatePersister classe.

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

Commenti

Avviso

BinaryFormatter non è sicuro e non può essere reso sicuro. Per altre informazioni, vedere la guida alla sicurezza BinaryFormatter.

La classe serializza e deserializza i grafici dello stato dell'oggetto ObjectStateFormatter in un formato compatto.

ObjectStateFormatter viene usato dalla PageStatePersister classe e dalle classi che derivano da esso per serializzare lo stato di visualizzazione e lo stato di controllo. Viene usato anche dalla classe per fornire la formattazione del grafico dello stato dell'oggetto per varie parti dell'infrastruttura LosFormatter ASP.NET.

La ObjectStateFormatter classe è ottimizzata per serializzare e formattare molti tipi di riferimento comuni di .NET Framework, nonché costanti. Nella tabella seguente sono elencati i tipi ottimizzati.

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

Inoltre, mentre i tipi di stringa convenzionali e le matrici di stringhe vengono scritti in e da un writer binario serializzato non modificato, alcune stringhe vengono ottimizzate creando tabelle di stringhe interne. Le stringhe sono ottimizzate usando queste tabelle se la stringa ha un oggetto associato TypeConverter o se la stringa è effettivamente un'istanza della IndexedString classe.

Altri tipi non elencati sopra sono serializzati binari usando un BinaryFormatter oggetto se implementano l'interfaccia o sono decorati con l'attributo ISerializableSerializableAttribute . La ObjectStateFormatter classe non è ottimizzata per nessuno di questi tipi serializzabili.

Se la classe rileva un tipo non serializzabile, viene generata un'eccezione ObjectStateFormatterArgumentException .

Costruttori

ObjectStateFormatter()

Inizializza una nuova istanza della classe ObjectStateFormatter.

Metodi

Deserialize(Stream)

Deserializza un grafico sullo stato di un oggetto dallo stato serializzato con formato binario incluso nell'oggetto Stream specificato.

Deserialize(String)

Deserializza il grafico sullo stato di un oggetto a partire dal formato stringa serializzato con codifica Base64.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Serialize(Object)

Serializza un grafico sullo stato di oggetti in una stringa con codifica Base64.

Serialize(Stream, Object)

Serializza un grafico sullo stato di un oggetto nell'oggetto Stream specificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IFormatter.Binder

Per una descrizione di questo membro, vedere Binder.

IFormatter.Context

Per una descrizione di questo membro, vedere Context.

IFormatter.Deserialize(Stream)

Per una descrizione di questo membro, vedere Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Per una descrizione di questo membro, vedere Serialize(Stream, Object).

IFormatter.SurrogateSelector

Per una descrizione di questo membro, vedere SurrogateSelector.

IStateFormatter.Deserialize(String)

Per una descrizione di questo membro, vedere Deserialize(String).

IStateFormatter.Serialize(Object)

Per una descrizione di questo membro, vedere Serialize(Object).

Si applica a