ObjectStateFormatter Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
- Array
- DateTime
- Int16
- String
- ArrayList
- Double
- Int32
String[]- Boolean
- Enum
-
null(Nothing) - String.Empty
- Byte
- Hashtable
- Pair
- Triplet
- Char
- HybridDictionary
- Single
- Type
- Color
- IDictionary
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). |