ObjectStateFormatter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Serializuje i deserializuje wykresy obiektów, które reprezentują stan obiektu. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
-
ObjectStateFormatter
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano, jak klasa pochodząca z PageStatePersister klasy uzyskuje dostęp do StateFormatter właściwości w celu pobrania ObjectStateFormatter wystąpienia w celu serializacji stanu widoku i stanu kontroli do strumienia. Ten przykład kodu jest częścią większego przykładu podanego PageStatePersister dla klasy.
//
// 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
Uwagi
Ostrzeżenie
BinaryFormatter
jest niezabezpieczony i nie może być zabezpieczony. Aby uzyskać więcej informacji, zobacz Przewodnik po zabezpieczeniach BinaryFormatter.
Klasa ObjectStateFormatter serializuje i deserializuje wykresy stanu obiektu w formacie kompaktowym.
ObjectStateFormatter jest używany przez klasę PageStatePersister i klasy, które pochodzą z niej, aby serializować stan widoku i stan kontroli. Jest ona również używana przez klasę LosFormatter w celu zapewnienia formatowania wykresu stanu obiektu dla różnych części infrastruktury ASP.NET.
Klasa ObjectStateFormatter jest zoptymalizowana pod kątem serializacji i formatowania wielu typowych typów odwołań .NET Framework, a także stałych. W poniższej tabeli wymieniono typy zoptymalizowane.
Array | DateTime | Int16 | String |
ArrayList | Double | Int32 | Ciąg [] |
Boolean | Enum | null (Nothing ) |
String.Empty |
Byte | Hashtable | Pair | Triplet |
Char | HybridDictionary | Single | Type |
Color | IDictionary |
Ponadto, podczas gdy konwencjonalne typy ciągów i tablice ciągów są zapisywane do i z serializowanego składnika zapisywania binarnego niezracjonalizowane, niektóre ciągi są zoptymalizowane przez tworzenie wewnętrznych tabel ciągów. Ciągi są zoptymalizowane przy użyciu tych tabel, jeśli ciąg ma skojarzony TypeConverter obiekt lub czy ciąg jest w rzeczywistości wystąpieniem IndexedString klasy.
Inne typy, które nie zostały wymienione powyżej, są serializowane binarnie przy użyciu BinaryFormatter obiektu, jeśli implementują ISerializable interfejs lub są ozdobione atrybutem SerializableAttribute . Klasa ObjectStateFormatter nie jest zoptymalizowana pod kątem żadnego z tych typów serializacji.
ObjectStateFormatter Jeśli klasa napotka typ, który nie można serializować, ArgumentException zostanie zgłoszony wyjątek.
Konstruktory
ObjectStateFormatter() |
Inicjuje nowe wystąpienie klasy ObjectStateFormatter. |
Metody
Deserialize(Stream) |
Deserializuje wykres stanu obiektu z postaci z serializacji binarnej zawartej w określonym Stream obiekcie. |
Deserialize(String) |
Deserializuje graf stanu obiektu z serializacji postaci ciągów zakodowanych w formacie base64. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Serialize(Object) |
Serializuje wykres stanu obiektu na ciąg zakodowany w formacie base64. |
Serialize(Stream, Object) |
Serializuje wykres stanu obiektu do określonego Stream obiektu. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
IFormatter.Binder |
Aby uzyskać opis tego elementu członkowskiego, zobacz Binder. |
IFormatter.Context |
Aby uzyskać opis tego elementu członkowskiego, zobacz Context. |
IFormatter.Deserialize(Stream) |
Aby uzyskać opis tego elementu członkowskiego, zobacz Deserialize(Stream). |
IFormatter.Serialize(Stream, Object) |
Aby uzyskać opis tego elementu członkowskiego, zobacz Serialize(Stream, Object). |
IFormatter.SurrogateSelector |
Aby uzyskać opis tego elementu członkowskiego, zobacz SurrogateSelector. |
IStateFormatter.Deserialize(String) |
Aby uzyskać opis tego elementu członkowskiego, zobacz Deserialize(String). |
IStateFormatter.Serialize(Object) |
Aby uzyskać opis tego elementu członkowskiego, zobacz Serialize(Object). |