Cette documentation est archivée et n’est pas conservée.

ObjectStateFormatter, classe

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.

Espace de noms: System.Web.UI
Assembly : System.Web (dans system.web.dll)

public sealed class ObjectStateFormatter : IStateFormatter, IFormatter
public final class ObjectStateFormatter implements IStateFormatter, IFormatter
public final class ObjectStateFormatter implements IStateFormatter, IFormatter
Non applicable.

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

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

La classe ObjectStateFormatter est optimisée pour sérialiser et mettre en forme de nombreux types référence .NET Framework communs, ainsi que des constantes. Le tableau suivant répertorie les types optimisés.

En outre, si des types de chaînes et les tableaux de chaînes classiques sont écrits vers et depuis un writer binaire sérialisé non modifié, certaines chaînes sont optimisées par la création de tables de chaînes internes. Une chaîne est optimisée au moyen de ces tables si elle dispose d'un objet TypeConverter associé ou si elle constitue en réalité une instance de la classe IndexedString.

D'autres types non répertoriés ci-dessus font l'objet d'une sérialisation binaire au moyen de l'objet BinaryFormatter s'ils implémentent l'interface ISerializable ou s'ils sont décorés de l'attribut SerializableAttribute. La classe ObjectStateFormatter n'est optimisée pour aucun de ces types sérialisables.

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

L'exemple de code suivant montre comment une classe qui dérive de la classe PageStatePersister accède à la propriété StateFormatter pour récupérer une instance de ObjectStateFormatter pour sérialiser un état d'affichage et un état de contrôle dans un flux. Ce code fait partie d'un exemple plus développé fourni pour la classe PageStatePersister.

//
// 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.");
    }
}

  • AspNetHostingPermission  pour fonctionner dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal.

System.Object
  System.Web.UI.ObjectStateFormatter

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0
Afficher: