Partager via


ObjectStateFormatter Classe

Définition

Sérialise et désérialise les graphiques d’objets qui représentent l’état d’un objet. Cette classe ne peut pas être héritée.

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
Héritage
ObjectStateFormatter
Implémente

Exemples

L’exemple de code suivant montre comment une classe qui dérive de la classe accède à la PageStatePersisterStateFormatter propriété pour récupérer une ObjectStateFormatter instance pour sérialiser l’état d’affichage et l’état de contrôle dans un flux. Cet exemple de code fait partie d’un exemple plus grand fourni pour la 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

Remarques

Avertissement

BinaryFormatter n’est pas sécurisé et ne peut pas être sécurisé. Pour plus d’informations, consultez le Guide de sécurité de BinaryFormatter.

La ObjectStateFormatter classe sérialise et désérialise les graphiques d’état d’objet dans un format compact.

ObjectStateFormatter est utilisé par la PageStatePersister classe et les classes qui dérivent de celui-ci pour sérialiser l’état d’affichage et l’état de contrôle. Il est également utilisé par la LosFormatter classe pour fournir une mise en forme de graphique d’état d’objet pour différentes parties de l’infrastructure ASP.NET.

La ObjectStateFormatter classe est optimisée pour sérialiser et mettre en forme de nombreux types de référence .NET Framework courants, ainsi que des constantes. Les types suivants sont optimisés :

En outre, bien que les types de chaînes et les tableaux de chaînes conventionnels soient écrits dans et à partir d’un enregistreur binaire sérialisé non modifiées, certaines chaînes sont optimisées en créant des tables de chaînes internes. Les chaînes sont optimisées à l’aide de ces tables si la chaîne a un objet associé TypeConverter ou si la chaîne est en fait une instance de la IndexedString classe.

Les autres types non répertoriés ci-dessus sont sérialisés binaires à l’aide d’un BinaryFormatter objet s’ils implémentent l’interface ISerializable ou sont décorés avec l’attribut SerializableAttribute . La ObjectStateFormatter classe n’est pas optimisée pour l’un de ces types sérialisables.

Si la ObjectStateFormatter classe rencontre un type qui n’est pas sérialisable, une ArgumentException exception est levée.

Constructeurs

Nom Description
ObjectStateFormatter()

Initialise une nouvelle instance de la classe ObjectStateFormatter.

Méthodes

Nom Description
Deserialize(Stream)

Désérialise un graphique d’état d’objet à partir de sa forme sérialisée binaire contenue dans l’objet spécifié Stream .

Deserialize(String)

Désérialise un graphique d’état d’objet à partir de sa forme de chaîne codée en base64 sérialisée.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Serialize(Object)

Sérialise un graphique d’état d’objet vers une chaîne encodée en base64.

Serialize(Stream, Object)

Sérialise un graphique d’état d’objet vers l’objet spécifié Stream .

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IFormatter.Binder

Pour obtenir une description de ce membre, consultez Binder.

IFormatter.Context

Pour obtenir une description de ce membre, consultez Context.

IFormatter.Deserialize(Stream)

Pour obtenir une description de ce membre, consultez Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Pour obtenir une description de ce membre, consultez Serialize(Stream, Object).

IFormatter.SurrogateSelector

Pour obtenir une description de ce membre, consultez SurrogateSelector.

IStateFormatter.Deserialize(String)

Pour obtenir une description de ce membre, consultez Deserialize(String).

IStateFormatter.Serialize(Object)

Pour obtenir une description de ce membre, consultez Serialize(Object).

S’applique à