ObjectStateFormatter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Serializa e desserializa objetos de gráfico que representam o estado em um objeto. Essa classe não pode ser herdada.
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
- Herança
-
ObjectStateFormatter
- Implementações
Exemplos
O exemplo de código a seguir demonstra como uma classe derivada da PageStatePersister classe acessa a StateFormatter propriedade para recuperar uma ObjectStateFormatter instância para serializar o estado de exibição e o estado de controle em um fluxo. Este exemplo de código faz parte de um exemplo maior fornecido para a 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
Comentários
Aviso
BinaryFormatter
Não é seguro e não pode se tornar seguro. Para obter mais informações, consulte o Guia de segurança do BinaryFormatter.
A ObjectStateFormatter classe serializa e desserializa grafos de estado do objeto em um formato compacto.
ObjectStateFormatter é usado pela PageStatePersister classe e classes que derivam dela para serializar o estado de exibição e o estado de controle. Ele também é usado pela LosFormatter classe para fornecer formatação de grafo de estado do objeto para várias partes da infraestrutura ASP.NET.
A ObjectStateFormatter classe é otimizada para serializar e formatar muitos tipos de referência comuns .NET Framework, bem como constantes. A tabela a seguir lista os tipos otimizados.
Array | DateTime | Int16 | String |
ArrayList | Double | Int32 | Cadeia de caracteres [] |
Boolean | Enum | nulo (Nothing ) |
String.Empty |
Byte | Hashtable | Pair | Triplet |
Char | HybridDictionary | Single | Type |
Color | IDictionary |
Além disso, enquanto os tipos de cadeia de caracteres convencionais e matrizes de cadeia de caracteres são gravados de e para um gravador binário serializado sem alterações, algumas cadeias de caracteres são otimizadas criando tabelas de cadeias de caracteres internas. As cadeias de caracteres serão otimizadas usando essas tabelas se a cadeia de caracteres tiver um objeto associado TypeConverter ou se a cadeia de caracteres for realmente uma instância da IndexedString classe.
Outros tipos não listados acima são serializados binários usando um BinaryFormatter objeto se implementarem a ISerializable interface ou forem decorados com o SerializableAttribute atributo. A ObjectStateFormatter classe não é otimizada para nenhum desses tipos serializáveis.
Se a ObjectStateFormatter classe encontrar um tipo que não seja serializável, uma exceção ArgumentException será gerada.
Construtores
ObjectStateFormatter() |
Inicializa uma nova instância da classe ObjectStateFormatter. |
Métodos
Deserialize(Stream) |
Desserializa um grafo de estado do objeto de sua forma serializada binária no objeto Stream especificado. |
Deserialize(String) |
Desserializa um grafo de estado do objeto da sua forma de cadeia de caracteres codificada em base64 serializada. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
Serialize(Object) |
Serializa um grafo de estado de objeto para uma cadeia de caracteres codificada em base64. |
Serialize(Stream, Object) |
Serializa um grafo de estado do objeto para o objeto Stream especificado. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
IFormatter.Binder |
Para obter uma descrição desse membro, confira Binder. |
IFormatter.Context |
Para obter uma descrição desse membro, confira Context. |
IFormatter.Deserialize(Stream) |
Para obter uma descrição desse membro, confira Deserialize(Stream). |
IFormatter.Serialize(Stream, Object) |
Para obter uma descrição desse membro, confira Serialize(Stream, Object). |
IFormatter.SurrogateSelector |
Para obter uma descrição desse membro, confira SurrogateSelector. |
IStateFormatter.Deserialize(String) |
Para obter uma descrição desse membro, confira Deserialize(String). |
IStateFormatter.Serialize(Object) |
Para obter uma descrição desse membro, confira Serialize(Object). |