ObjectStateFormatter Classe

Definizione

Serializza e deserializza gli oggetti grafici che rappresentano lo stato di un oggetto.Serializes and deserializes object graphs that represent the state of an object. La classe non può essere ereditata.This class cannot be inherited.

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 il modo in cui una classe che deriva dalla PageStatePersister classe accede alla StateFormatter proprietà per recuperare un' ObjectStateFormatter istanza di per serializzare lo stato di visualizzazione e lo stato del controllo in un flusso.The following code example demonstrates how a class that derives from the PageStatePersister class accesses the StateFormatter property to retrieve an ObjectStateFormatter instance to serialize view state and control state to a stream. Questo esempio di codice fa parte di un esempio più ampio fornito per la PageStatePersister classe.This code example is part of a larger example provided for the PageStatePersister class.

//
// 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 è protetto e non può essere reso sicuro.BinaryFormatter is insecure and can't be made secure. Per ulteriori informazioni, vedere la Guida alla sicurezza di BinaryFormatter.For more information, see the BinaryFormatter security guide.

La ObjectStateFormatter classe serializza e deserializza i grafici dello stato dell'oggetto in un formato compatto.The ObjectStateFormatter class serializes and deserializes object state graphs in a compact format.

ObjectStateFormatter viene usato dalla PageStatePersister classe e dalle classi che derivano da esso per serializzare lo stato di visualizzazione e lo stato del controllo.ObjectStateFormatter is used by the PageStatePersister class and classes that derive from it to serialize view state and control state. Viene inoltre usato dalla LosFormatter classe per fornire la formattazione del grafico dello stato dell'oggetto per varie parti dell'infrastruttura ASP.NET.It is also used by the LosFormatter class to provide object state graph formatting for various parts of the ASP.NET infrastructure.

La ObjectStateFormatter classe è ottimizzata per serializzare e formattare molti tipi di riferimento .NET Framework comuni, nonché costanti.The ObjectStateFormatter class is optimized to serialize and format many common .NET Framework reference types, as well as constants. Nella tabella seguente sono elencati i tipi ottimizzati.The following table lists the types that are optimized.

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

Inoltre, mentre i tipi di stringa e le matrici di stringhe convenzionali vengono scritti da e verso un writer binario serializzato senza modifiche, alcune stringhe sono ottimizzate creando tabelle di stringhe interne.Additionally, while conventional string types and string arrays are written to and from a serialized binary writer unaltered, some strings are optimized by creating internal string tables. Le stringhe sono ottimizzate usando queste tabelle se la stringa ha un TypeConverter oggetto associato o se la stringa è effettivamente un'istanza della IndexedString classe.Strings are optimized using these tables if the string has an associated TypeConverter object or if the string is actually an instance of the IndexedString class.

Altri tipi non elencati in precedenza sono serializzati in formato binario usando un BinaryFormatter oggetto se implementano l' ISerializable interfaccia o sono decorati con l' SerializableAttribute attributo.Other types not listed above are binary-serialized using a BinaryFormatter object if they implement the ISerializable interface or are decorated with the SerializableAttribute attribute. La ObjectStateFormatter classe non è ottimizzata per nessuno di questi tipi serializzabili.The ObjectStateFormatter class is not optimized for any of these serializable types.

Se la ObjectStateFormatter classe rileva un tipo non serializzabile, ArgumentException viene generata un'eccezione.If the ObjectStateFormatter class encounters a type that is not serializable, an ArgumentException exception is thrown.

Costruttori

ObjectStateFormatter()

Inizializza una nuova istanza della classe ObjectStateFormatter.Initializes a new instance of the ObjectStateFormatter class.

Metodi

Deserialize(Stream)

Deserializza un grafico sullo stato di un oggetto dallo stato serializzato con formato binario incluso nell'oggetto Stream specificato.Deserializes an object state graph from its binary-serialized form that is contained in the specified Stream object.

Deserialize(String)

Deserializza il grafico sullo stato di un oggetto a partire dal formato stringa serializzato con codifica Base64.Deserializes an object state graph from its serialized base64-encoded string form.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Serialize(Object)

Serializza un grafico sullo stato di oggetti in una stringa con codifica Base64.Serializes an object state graph to a base64-encoded string.

Serialize(Stream, Object)

Serializza un grafico sullo stato di un oggetto nell'oggetto Stream specificato.Serializes an object state graph to the specified Stream object.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IFormatter.Binder

Per una descrizione di questo membro, vedere Binder.For a description of this member, see Binder.

IFormatter.Context

Per una descrizione di questo membro, vedere Context.For a description of this member, see Context.

IFormatter.Deserialize(Stream)

Per una descrizione di questo membro, vedere Deserialize(Stream).For a description of this member, see Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Per una descrizione di questo membro, vedere Serialize(Stream, Object).For a description of this member, see Serialize(Stream, Object).

IFormatter.SurrogateSelector

Per una descrizione di questo membro, vedere SurrogateSelector.For a description of this member, see SurrogateSelector.

IStateFormatter.Deserialize(String)

Per una descrizione di questo membro, vedere Deserialize(String).For a description of this member, see Deserialize(String).

IStateFormatter.Serialize(Object)

Per una descrizione di questo membro, vedere Serialize(Object).For a description of this member, see Serialize(Object).

Si applica a