ObjectStateFormatter Sınıf

Tanım

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). .

Şunlara uygulanır