Partilhar via


ObjectStateFormatter Classe

Definição

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:

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

Aplica-se a