Partilhar via


ObjectStateFormatter Classe

Definição

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

Aplica-se a