Condividi tramite


ObjectStateFormatter Classe

Definizione

Serializza e deserializza gli oggetti grafici che rappresentano lo stato di un oggetto. Questa 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 di codice seguente viene illustrato come una classe che deriva dalla PageStatePersister classe accede alla StateFormatter proprietà per recuperare un'istanza ObjectStateFormatter di per serializzare lo stato di visualizzazione e lo stato di controllo in un flusso. Questo esempio di codice fa parte di un esempio più ampio 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 ObjectStateFormatter classe serializza e deserializza i grafici dello stato dell'oggetto in un formato compatto.

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

La ObjectStateFormatter classe è ottimizzata per serializzare e formattare molti tipi di riferimento comuni di .NET Framework, nonché costanti. Sono ottimizzati i tipi seguenti:

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 sono ottimizzate creando tabelle di stringhe interne. Le stringhe vengono 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 in precedenza sono serializzati in modo binario usando un BinaryFormatter oggetto se implementano l'interfaccia ISerializable o sono decorati con l'attributo SerializableAttribute . La ObjectStateFormatter classe non è ottimizzata per nessuno di questi tipi serializzabili.

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

Costruttori

Nome Descrizione
ObjectStateFormatter()

Inizializza una nuova istanza della classe ObjectStateFormatter.

Metodi

Nome Descrizione
Deserialize(Stream)

Deserializza un grafico dello stato dell'oggetto dal formato serializzato binario contenuto nell'oggetto specificato Stream .

Deserialize(String)

Deserializza un grafico dello stato dell'oggetto dal formato stringa con codifica base64 serializzato.

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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Serialize(Object)

Serializza un grafico dello stato dell'oggetto in una stringa con codifica base64.

Serialize(Stream, Object)

Serializza un grafico dello stato dell'oggetto nell'oggetto specificato Stream .

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
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