ObjectStateFormatter Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Szerializálja és deszerializálja az objektum állapotát képviselő objektumdiagramokat. Ez az osztály nem örökölhető.
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
- Öröklődés
-
ObjectStateFormatter
- Megvalósítás
Példák
Az alábbi példakód bemutatja, hogy az PageStatePersister osztályból származó osztály hogyan fér hozzá a tulajdonsághoz, StateFormatter hogy lekérjen egy példányt ObjectStateFormatter a nézetállapot szerializálásához és az állapot streamhez való szabályozásához. Ez a példakód egy nagyobb, az PageStatePersister osztályhoz tartozó példa része.
//
// 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
Megjegyzések
Warning
BinaryFormatter nem biztonságos, és nem lehet biztonságossá tenni. További információt a BinaryFormatter biztonsági útmutatójában talál.
Az ObjectStateFormatter osztály tömör formátumban szerializálja és deszerializálja az objektumállapot-grafikonokat.
ObjectStateFormatter az abból származó osztály és osztályok használják PageStatePersister a nézetállapot és a vezérlőállapot szerializálására. A LosFormatter osztály is használja, hogy objektumállapot-gráfformázást biztosítson a ASP.NET-infrastruktúra különböző részeihez.
A ObjectStateFormatter osztály számos gyakori .NET Keretrendszer-referenciatípus, valamint állandók szerializálására és formázására van optimalizálva. A következő típusok vannak optimalizálva:
- Array
- DateTime
- Int16
- String
- ArrayList
- Double
- Int32
String[]- Boolean
- Enum
-
null(Nothing) - String.Empty
- Byte
- Hashtable
- Pair
- Triplet
- Char
- HybridDictionary
- Single
- Type
- Color
- IDictionary
Emellett míg a hagyományos sztringtípusok és sztringtömbök szerializált bináris írókba és azok alapján vannak megírva, egyes sztringek belső sztringtáblák létrehozásával vannak optimalizálva. A sztringek akkor vannak optimalizálva ezekkel a táblázatokkal, ha a sztring társított objektummal TypeConverter rendelkezik, vagy ha a sztring valójában az IndexedString osztály egy példánya.
A fentiekben nem szereplő egyéb típusok bináris szerializálva vannak egy BinaryFormatter objektummal, ha implementálják az ISerializable interfészt, vagy az SerializableAttribute attribútummal vannak díszítve. Az ObjectStateFormatter osztály nincs optimalizálva ezen szerializálható típusok egyikéhez sem.
Ha az ObjectStateFormatter osztály olyan típussal találkozik, amely nem szerializálható, ArgumentException kivételt jelez.
Konstruktorok
| Name | Description |
|---|---|
| ObjectStateFormatter() |
Inicializálja a ObjectStateFormatter osztály új példányát. |
Metódusok
| Name | Description |
|---|---|
| Deserialize(Stream) |
Deszerializál egy objektumállapot-gráfot a megadott Stream objektumban található bináris szerializált űrlapból. |
| Deserialize(String) |
Deszerializál egy objektumállapot-gráfot a szerializált base64 kódolt sztringűrlapról. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Serialize(Object) |
Egy objektumállapot-gráfot egy base64 kódolású sztringre szerializál. |
| Serialize(Stream, Object) |
Szerializál egy objektumállapot-gráfot a megadott Stream objektumra. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IFormatter.Binder |
Ennek a tagnak a leírását lásd Binder: . |
| IFormatter.Context |
Ennek a tagnak a leírását lásd Context: . |
| IFormatter.Deserialize(Stream) |
Ennek a tagnak a leírását lásd Deserialize(Stream): . |
| IFormatter.Serialize(Stream, Object) |
Ennek a tagnak a leírását lásd Serialize(Stream, Object): . |
| IFormatter.SurrogateSelector |
Ennek a tagnak a leírását lásd SurrogateSelector: . |
| IStateFormatter.Deserialize(String) |
Ennek a tagnak a leírását lásd Deserialize(String): . |
| IStateFormatter.Serialize(Object) |
Ennek a tagnak a leírását lásd Serialize(Object): . |