ObjectStateFormatter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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). |