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). |