Compartir a través de


ObjectStateFormatter Clase

Definición

Serializa y deserializa gráficos de objetos que representan el estado de un objeto. Esta clase no puede heredarse.

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
Herencia
ObjectStateFormatter
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo una clase que deriva de la clase accede a la PageStatePersisterStateFormatter propiedad para recuperar una ObjectStateFormatter instancia para serializar el estado de vista y el estado de control en una secuencia. Este ejemplo de código es parte de un ejemplo mayor proporcionado para la clase PageStatePersister.

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

Comentarios

Advertencia

BinaryFormatter no es seguro y no se puede convertir en seguro. Para obtener más información, vea Guía de seguridad de BinaryFormatter.

La ObjectStateFormatter clase serializa y deserializa gráficos de estado de objeto en un formato compacto.

ObjectStateFormatter la usan la PageStatePersister clase y las clases que derivan de ella para serializar el estado de vista y el estado de control. También lo usa la LosFormatter clase para proporcionar formato de grafo de estado de objeto para varias partes de la infraestructura de ASP.NET.

La ObjectStateFormatter clase está optimizada para serializar y dar formato a muchos tipos de referencia comunes de .NET Framework, así como constantes. En la tabla siguiente se enumeran los tipos optimizados.

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

Además, mientras que los tipos de cadena convencionales y las matrices de cadenas se escriben en y desde un escritor binario serializado sin modificar, algunas cadenas se optimizan mediante la creación de tablas de cadenas internas. Las cadenas se optimizan con estas tablas si la cadena tiene un objeto asociado TypeConverter o si la cadena es realmente una instancia de la IndexedString clase .

Otros tipos no enumerados anteriormente se serializan binariamente mediante un BinaryFormatter objeto si implementan la ISerializable interfaz o están decoradas con el SerializableAttribute atributo . La ObjectStateFormatter clase no está optimizada para ninguno de estos tipos serializables.

Si la ObjectStateFormatter clase encuentra un tipo que no es serializable, se produce una ArgumentException excepción.

Constructores

ObjectStateFormatter()

Inicializa una nueva instancia de la clase ObjectStateFormatter.

Métodos

Deserialize(Stream)

Deserializa un gráfico de estado de objeto de su formato serializado como binario contenido en el objeto Stream especificado.

Deserialize(String)

Deserializa un gráfico de estado de objeto partiendo de su formato de cadena serializada codificada en base64.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Serialize(Object)

Serializa un gráfico de estado de objeto a una cadena codificada en base64.

Serialize(Stream, Object)

Serializa un gráfico de estado de objeto al objeto Stream especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IFormatter.Binder

Para obtener una descripción de este miembro, vea Binder.

IFormatter.Context

Para obtener una descripción de este miembro, vea Context.

IFormatter.Deserialize(Stream)

Para obtener una descripción de este miembro, vea Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Para obtener una descripción de este miembro, vea Serialize(Stream, Object).

IFormatter.SurrogateSelector

Para obtener una descripción de este miembro, vea SurrogateSelector.

IStateFormatter.Deserialize(String)

Para obtener una descripción de este miembro, vea Deserialize(String).

IStateFormatter.Serialize(Object)

Para obtener una descripción de este miembro, vea Serialize(Object).

Se aplica a