ObjectStateFormatter Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Serialiserar och deserialiserar objektdiagram som representerar tillståndet för ett objekt. Det går inte att ärva den här klassen.
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
- Arv
-
ObjectStateFormatter
- Implementeringar
Exempel
Följande kodexempel visar hur en klass som härleds från PageStatePersister klassen får åtkomst StateFormatter till egenskapen för att hämta en ObjectStateFormatter instans för att serialisera visningstillstånd och kontrolltillstånd till en dataström. Det här kodexemplet är en del av ett större exempel för PageStatePersister klassen.
//
// 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
Kommentarer
Varning
BinaryFormatter är osäker och kan inte göras säker. Mer information finns i säkerhetsguiden för BinaryFormatter.
Klassen ObjectStateFormatter serialiserar och deserialiserar objekttillståndsdiagram i ett kompakt format.
ObjectStateFormatter används av klassen PageStatePersister och klasserna som härleds från den för att serialisera visningstillstånd och kontrolltillstånd. Den används också av klassen LosFormatter för att tillhandahålla objekttillståndsdiagramformatering för olika delar av ASP.NET infrastruktur.
Klassen ObjectStateFormatter är optimerad för att serialisera och formatera många vanliga .NET Framework-referenstyper samt konstanter. Följande typer är optimerade:
- Array
- DateTime
- Int16
- String
- ArrayList
- Double
- Int32
String[]- Boolean
- Enum
-
null(Nothing) - String.Empty
- Byte
- Hashtable
- Pair
- Triplet
- Char
- HybridDictionary
- Single
- Type
- Color
- IDictionary
Även om konventionella strängtyper och strängmatriser skrivs till och från en serialiserad binär skrivare som inte är upphöjt, optimeras vissa strängar genom att skapa interna strängtabeller. Strängar optimeras med hjälp av dessa tabeller om strängen har ett associerat TypeConverter objekt eller om strängen faktiskt är en instans av IndexedString klassen.
Andra typer som inte anges ovan är binär-serialiserade med hjälp av ett BinaryFormatter objekt om de implementerar ISerializable gränssnittet eller är dekorerade med SerializableAttribute attributet. Klassen ObjectStateFormatter är inte optimerad för någon av dessa serialiserbara typer.
Om klassen ObjectStateFormatter stöter på en typ som inte är serialiserbar genereras ett ArgumentException undantag.
Konstruktorer
| Name | Description |
|---|---|
| ObjectStateFormatter() |
Initierar en ny instans av ObjectStateFormatter klassen. |
Metoder
| Name | Description |
|---|---|
| Deserialize(Stream) |
Deserialiserar ett objekttillståndsdiagram från dess binär-serialiserade form som finns i det angivna Stream objektet. |
| Deserialize(String) |
Deserialiserar ett objekttillståndsdiagram från dess serialiserade base64-kodade strängformulär. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Serialize(Object) |
Serialiserar ett objekttillståndsdiagram till en base64-kodad sträng. |
| Serialize(Stream, Object) |
Serialiserar ett objekttillståndsdiagram till det angivna Stream objektet. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IFormatter.Binder |
En beskrivning av den här medlemmen finns i Binder. |
| IFormatter.Context |
En beskrivning av den här medlemmen finns i Context. |
| IFormatter.Deserialize(Stream) |
En beskrivning av den här medlemmen finns i Deserialize(Stream). |
| IFormatter.Serialize(Stream, Object) |
En beskrivning av den här medlemmen finns i Serialize(Stream, Object). |
| IFormatter.SurrogateSelector |
En beskrivning av den här medlemmen finns i SurrogateSelector. |
| IStateFormatter.Deserialize(String) |
En beskrivning av den här medlemmen finns i Deserialize(String). |
| IStateFormatter.Serialize(Object) |
En beskrivning av den här medlemmen finns i Serialize(Object). |