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 grafos de objeto que representam o estado de 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 para 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 ser tornado seguro. Para saber mais, confira 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 classe e classes que derivam dela para serializar o PageStatePersister estado de exibição e o estado de controle. Ele também é usado pela LosFormatter classe para fornecer formatação de grafo de estado de objeto para várias partes da infraestrutura de ASP.NET.
A ObjectStateFormatter classe é otimizada para serializar e formatar muitos tipos de referência comuns do .NET Framework, bem como constantes. Os seguintes tipos são otimizados:
- Array
- DateTime
- Int16
- String
- ArrayList
- Double
- Int32
String[]- Boolean
- Enum
-
null(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 sã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 em binário usando um BinaryFormatter objeto se implementam a ISerializable interface ou são 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
| Nome | Description |
|---|---|
| ObjectStateFormatter() |
Inicializa uma nova instância da classe ObjectStateFormatter. |
Métodos
| Nome | Description |
|---|---|
| Deserialize(Stream) |
Desserializa um grafo de estado de objeto de seu formulário serializado binário contido no objeto especificado Stream . |
| Deserialize(String) |
Desserializa um grafo de estado de objeto de seu formulário de cadeia de caracteres serializado codificado em base64. |
| 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 Objectatual. (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 de objeto para o objeto especificado Stream . |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IFormatter.Binder |
Para obter uma descrição deste membro, consulte Binder. |
| IFormatter.Context |
Para obter uma descrição deste membro, consulte Context. |
| IFormatter.Deserialize(Stream) |
Para obter uma descrição deste membro, consulte Deserialize(Stream). |
| IFormatter.Serialize(Stream, Object) |
Para obter uma descrição deste membro, consulte Serialize(Stream, Object). |
| IFormatter.SurrogateSelector |
Para obter uma descrição deste membro, consulte SurrogateSelector. |
| IStateFormatter.Deserialize(String) |
Para obter uma descrição deste membro, consulte Deserialize(String). |
| IStateFormatter.Serialize(Object) |
Para obter uma descrição deste membro, consulte Serialize(Object). |