Partager via


ObjectStateFormatter Classe

Définition

Sérialise et désérialise des 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 dérivée de la classe accède à la PageStatePersister StateFormatter 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é 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 classe et les PageStatePersister 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 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 courants .NET Framework, ainsi que des constantes. Le tableau suivant répertorie les types optimisés.

Array DateTime Int16 String
ArrayList Double Int32 Chaîne []
Boolean Enum Null (Nothing) String.Empty
Byte Hashtable Pair Triplet
Char HybridDictionary Single Type
Color IDictionary

En outre, tandis que les types de chaînes classiques et les tableaux de chaînes sont écrits dans et à partir d’un enregistreur binaire sérialisé non affecté, 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 binairement à 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

ObjectStateFormatter()

Initialise une nouvelle instance de la classe ObjectStateFormatter.

Méthodes

Deserialize(Stream)

Désérialise un graphique d'état d'objet issu de son formulaire sérialisé en binaire, contenu dans l'objet Stream spécifié.

Deserialize(String)

Désérialise un graphique d'état d'objet à partir de sa forme de chaîne sérialisée encodée en base 64.

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Sérialise un graphique d'état d'objet dans une chaîne encodée en base 64.

Serialize(Stream, Object)

Sérialise un graphique d'état d'objet dans l'objet Stream spécifié.

ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

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 à