ObjectStateFormatter Klas

Definitie

Serialiseert en ontserialiseerde objectgrafieken die de status van een object vertegenwoordigen. Deze klasse kan niet worden overgenomen.

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
Overname
ObjectStateFormatter
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe een klasse die is afgeleid van de PageStatePersister klasse toegang heeft tot de StateFormatter eigenschap om een ObjectStateFormatter exemplaar op te halen om de weergavestatus en de controlestatus naar een stream te serialiseren. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de PageStatePersister klasse.

//
// 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

Opmerkingen

Warning

BinaryFormatter is onveilig en kan niet veilig worden gemaakt. Zie de beveiligingshandleiding binaryFormatter voor meer informatie.

De ObjectStateFormatter klasse serialiseert en ontserialiseerde objectstatusgrafieken in een compacte indeling.

ObjectStateFormatter wordt gebruikt door de PageStatePersister klasse en klassen die ermee zijn afgeleid om de weergavestatus en controlestatus te serialiseren. Het wordt ook gebruikt door de LosFormatter klasse om objectstatusgrafiekopmaak te bieden voor verschillende onderdelen van de ASP.NET-infrastructuur.

De klasse ObjectStateFormatter is geoptimaliseerd voor het serialiseren en opmaken van veel algemene .NET Framework-referentietypen, evenals constanten. De volgende typen zijn geoptimaliseerd:

Bovendien worden sommige tekenreekstypen en tekenreeksmatrices naar en van een geserialiseerde binaire schrijver zonder wijzigingen geschreven, geoptimaliseerd door interne tekenreekstabellen te maken. Tekenreeksen worden geoptimaliseerd met behulp van deze tabellen als de tekenreeks een gekoppeld TypeConverter object heeft of als de tekenreeks daadwerkelijk een exemplaar van de IndexedString klasse is.

Andere typen die hierboven niet worden vermeld, worden binair geserialiseerd met behulp van een BinaryFormatter object als ze de ISerializable interface implementeren of zijn ingericht met het SerializableAttribute kenmerk. De ObjectStateFormatter klasse is niet geoptimaliseerd voor een van deze serialiseerbare typen.

Als de ObjectStateFormatter klasse een type tegenkomt dat niet serialiseerbaar is, wordt er een ArgumentException uitzondering gegenereerd.

Constructors

Name Description
ObjectStateFormatter()

Initialiseert een nieuw exemplaar van de ObjectStateFormatter klasse.

Methoden

Name Description
Deserialize(Stream)

Deserializeert een objectstatusgrafiek van de binaire geserialiseerde vorm die zich in het opgegeven Stream object bevindt.

Deserialize(String)

Deserializeert een objectstatusgrafiek op basis van het geserialiseerde met base64 gecodeerde tekenreeksformulier.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Serialize(Object)

Serialiseert een objectstatusgrafiek naar een met base64 gecodeerde tekenreeks.

Serialize(Stream, Object)

Hiermee serialiseert u een objectstatusgrafiek naar het opgegeven Stream object.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
IFormatter.Binder

Zie voor een beschrijving van dit lid Binder.

IFormatter.Context

Zie voor een beschrijving van dit lid Context.

IFormatter.Deserialize(Stream)

Zie voor een beschrijving van dit lid Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Zie voor een beschrijving van dit lid Serialize(Stream, Object).

IFormatter.SurrogateSelector

Zie voor een beschrijving van dit lid SurrogateSelector.

IStateFormatter.Deserialize(String)

Zie voor een beschrijving van dit lid Deserialize(String).

IStateFormatter.Serialize(Object)

Zie voor een beschrijving van dit lid Serialize(Object).

Van toepassing op