Bagikan melalui


ObjectStateFormatter Kelas

Definisi

Menserialisasikan dan mendeserialisasi grafik objek yang mewakili status objek. Kelas ini tidak dapat diwariskan.

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
Warisan
ObjectStateFormatter
Penerapan

Contoh

Contoh kode berikut menunjukkan bagaimana kelas yang berasal dari PageStatePersister kelas mengakses StateFormatter properti untuk mengambil ObjectStateFormatter instans untuk membuat serialisasi status tampilan dan status kontrol ke aliran. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk PageStatePersister kelas .

//
// 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

Keterangan

Peringatan

BinaryFormatter tidak aman dan tidak dapat dibuat aman. Untuk informasi selengkapnya, lihat panduan keamanan BinaryFormatter.

Kelas ObjectStateFormatter menserialisasikan dan mendeserialisasi grafik status objek dalam format ringkas.

ObjectStateFormatter digunakan oleh PageStatePersister kelas dan kelas yang berasal dari kelas tersebut untuk membuat serialisasi status tampilan dan status kontrol. Ini juga digunakan oleh LosFormatter kelas untuk menyediakan pemformatan grafik status objek untuk berbagai bagian infrastruktur ASP.NET.

Kelas ini ObjectStateFormatter dioptimalkan untuk menserialisasikan dan memformat banyak jenis referensi .NET Framework umum, serta konstanta. Jenis berikut dioptimalkan:

Selain itu, sementara jenis string konvensional dan array string ditulis ke dan dari penulis biner berseri yang tidak diubah, beberapa string dioptimalkan dengan membuat tabel string internal. String dioptimalkan menggunakan tabel ini jika string memiliki objek terkait TypeConverter atau jika string sebenarnya adalah instans IndexedString kelas.

Jenis lain yang tidak tercantum di atas diserialisasikan biner menggunakan BinaryFormatter objek jika mengimplementasikan ISerializable antarmuka atau dihiasi dengan SerializableAttribute atribut . Kelas ObjectStateFormatter tidak dioptimalkan untuk salah satu jenis yang dapat diserialisasikan ini.

ObjectStateFormatter Jika kelas menemukan jenis yang tidak dapat diserialisasikan, ArgumentException pengecualian akan dilemparkan.

Konstruktor

Nama Deskripsi
ObjectStateFormatter()

Menginisialisasi instans baru dari kelas ObjectStateFormatter.

Metode

Nama Deskripsi
Deserialize(Stream)

Mendeserialisasi grafik status objek dari formulir serial biner yang terkandung dalam objek yang ditentukan Stream .

Deserialize(String)

Mendeserialisasi grafik status objek dari bentuk string yang dikodekan base64 yang diserialisasikan.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Serialize(Object)

Membuat serialisasi grafik status objek ke string yang dikodekan base64.

Serialize(Stream, Object)

Menserialisasi grafik status objek ke objek yang ditentukan Stream .

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IFormatter.Binder

Untuk deskripsi anggota ini, lihat Binder.

IFormatter.Context

Untuk deskripsi anggota ini, lihat Context.

IFormatter.Deserialize(Stream)

Untuk deskripsi anggota ini, lihat Deserialize(Stream).

IFormatter.Serialize(Stream, Object)

Untuk deskripsi anggota ini, lihat Serialize(Stream, Object).

IFormatter.SurrogateSelector

Untuk deskripsi anggota ini, lihat SurrogateSelector.

IStateFormatter.Deserialize(String)

Untuk deskripsi anggota ini, lihat Deserialize(String).

IStateFormatter.Serialize(Object)

Untuk deskripsi anggota ini, lihat Serialize(Object).

Berlaku untuk