ObjectStateFormatter Classe

Definição

Serializa e desserializa grafos de objetos que representam o estado de um objeto. Esta 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 seguinte demonstra como uma classe que deriva da PageStatePersister classe acede à StateFormatter propriedade para recuperar uma ObjectStateFormatter instância para serializar o estado da vista e o estado de controlo 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

Observações

Warning

BinaryFormatter é insegura e não pode ser tornada segura. Para obter mais informações, consulte o guia de segurança BinaryFormatter.

A ObjectStateFormatter classe serializa e desserializa grafos de estado de objeto num formato compacto.

ObjectStateFormatter é usada pela PageStatePersister classe e pelas classes que dela derivam para serializar o estado de vista e o estado de controlo. É também utilizado pela classe LosFormatter para fornecer formatação de grafos de estado de objetos para várias partes da infraestrutura ASP.NET.

A classe ObjectStateFormatter está otimizada para serializar e formatar muitos tipos comuns de referência .NET Framework, bem como constantes. Os seguintes tipos são otimizados:

Além disso, embora os tipos convencionais de strings e os arrays de strings sejam escritos para e a partir de um gravador binário serializado sem alterações, algumas strings são otimizadas criando tabelas internas de strings. As cadeias são otimizadas usando estas tabelas se a cadeia tiver um objeto associado TypeConverter ou se a cadeia for realmente uma instância da IndexedString classe.

Outros tipos não listados acima são binários serializados usando um BinaryFormatter objeto se implementarem a ISerializable interface ou forem decorados com o SerializableAttribute atributo. A ObjectStateFormatter classe não está otimizada para nenhum destes tipos serializáveis.

Se a ObjectStateFormatter classe encontrar um tipo que não é serializável, é lançada uma ArgumentException exceção.

Construtores

Name Description
ObjectStateFormatter()

Inicializa uma nova instância da ObjectStateFormatter classe.

Métodos

Name Description
Deserialize(Stream)

Desserializa um grafo de estado de objeto a partir da sua forma binária serializada que está contida no objeto especificado Stream .

Deserialize(String)

Desserializa um grafo de estado de objeto a partir da sua forma de string codificada em base64 em série.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Serialize(Object)

Serializa um grafo de estado de objeto numa cadeia codificada base64.

Serialize(Stream, Object)

Serializa um grafo de estado de objeto para o objeto especificado Stream .

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IFormatter.Binder

Para uma descrição deste elemento, veja Binder.

IFormatter.Context

Para uma descrição deste elemento, veja Context.

IFormatter.Deserialize(Stream)

Para uma descrição deste elemento, veja Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Para uma descrição deste elemento, veja Serialize(Stream, Object).

IFormatter.SurrogateSelector

Para uma descrição deste elemento, veja SurrogateSelector.

IStateFormatter.Deserialize(String)

Para uma descrição deste elemento, veja Deserialize(String).

IStateFormatter.Serialize(Object)

Para uma descrição deste elemento, veja Serialize(Object).

Aplica-se a