ObjectStateFormatter Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesnenin durumunu temsil eden nesne grafiklerini serileştirir ve seri durumdan çıkartır. Bu sınıf devralınamaz.
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
- Devralma
-
ObjectStateFormatter
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, sınıfından PageStatePersister türetilen bir sınıfın görünüm durumunu ve denetim durumunu akışa seri hale getirmek üzere bir ObjectStateFormatter örneği almak için özelliğine nasıl eriştiği StateFormatter gösterir. Bu kod örneği, sınıfı için PageStatePersister sağlanan daha büyük bir örneğin parçasıdır.
//
// 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
Açıklamalar
Uyarı
BinaryFormatter
güvenli değil ve güvenli hale getirilebilir. Daha fazla bilgi için, bkz. BinaryFormatter Güvenlik Kılavuzu.
sınıfı, ObjectStateFormatter nesne durumu grafiklerini sıkıştırılmış biçimde serileştirir ve seri durumdan çıkartır.
ObjectStateFormatter , görünüm durumunu ve denetim durumunu serileştirmek için ondan türetilen sınıflar ve sınıflar tarafından PageStatePersister kullanılır. Ayrıca sınıfı tarafından ASP.NET altyapısının LosFormatter çeşitli bölümleri için nesne durumu grafı biçimlendirmesi sağlamak için kullanılır.
ObjectStateFormatter sınıfı, birçok yaygın .NET Framework başvuru türünü ve sabitleri seri hale getirmek ve biçimlendirmek için iyileştirilmiştir. Aşağıdaki tabloda iyileştirilmiş türler listelenmiştir.
Array | DateTime | Int16 | String |
ArrayList | Double | Int32 | Dize [] |
Boolean | Enum | null (Nothing ) |
String.Empty |
Byte | Hashtable | Pair | Triplet |
Char | HybridDictionary | Single | Type |
Color | IDictionary |
Buna ek olarak, geleneksel dize türleri ve dize dizileri sıralanmamış bir ikili yazıcıya ve bu yazıcıdan yazılırken, bazı dizeler iç dize tabloları oluşturularak iyileştirilir. Dizenin ilişkili TypeConverter bir nesnesi varsa veya dize aslında sınıfın bir örneğiyse IndexedString , dizeler bu tablolar kullanılarak iyileştirilir.
Yukarıda listelenmeyen diğer türler, arabirimini uygularlarsa ISerializable veya özniteliğiyle SerializableAttribute dekore edilirlerse bir BinaryFormatter nesne kullanılarak ikili seri hale getirilir. sınıfı ObjectStateFormatter , bu seri hale getirilebilir türlerin hiçbiri için iyileştirilmemiştir.
ObjectStateFormatter Sınıf seri hale getirilemeyen bir türle karşılaşırsa, bir ArgumentException özel durum oluşturulur.
Oluşturucular
ObjectStateFormatter() |
ObjectStateFormatter sınıfının yeni bir örneğini başlatır. |
Yöntemler
Deserialize(Stream) |
Bir nesne durumu grafiğini, belirtilen Stream nesnede bulunan ikili serileştirilmiş biçiminden seri durumdan kaldırır. |
Deserialize(String) |
Serileştirilmiş base64 kodlamalı dize formundan nesne durumu grafiğini seri durumdan kaldırır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Serialize(Object) |
Nesne durumu grafiğini base64 kodlu bir dizeye serileştirir. |
Serialize(Stream, Object) |
Bir nesne durumu grafiğini belirtilen Stream nesneye serileştirir. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
IFormatter.Binder |
Bu üyenin açıklaması için bkz Binder. . |
IFormatter.Context |
Bu üyenin açıklaması için bkz Context. . |
IFormatter.Deserialize(Stream) |
Bu üyenin açıklaması için bkz Deserialize(Stream). . |
IFormatter.Serialize(Stream, Object) |
Bu üyenin açıklaması için bkz Serialize(Stream, Object). . |
IFormatter.SurrogateSelector |
Bu üyenin açıklaması için bkz SurrogateSelector. . |
IStateFormatter.Deserialize(String) |
Bu üyenin açıklaması için bkz Deserialize(String). . |
IStateFormatter.Serialize(Object) |
Bu üyenin açıklaması için bkz Serialize(Object). . |