ObjectStateFormatter Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
- Array
- DateTime
- Int16
- String
- ArrayList
- Double
- Int32
String[]- Boolean
- Enum
-
null(Nothing) - String.Empty
- Byte
- Hashtable
- Pair
- Triplet
- Char
- HybridDictionary
- Single
- Type
- Color
- IDictionary
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). |