BinaryFormatter 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.
Perhatian
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Menserialisasikan dan mendeserialisasi objek, atau seluruh grafik objek yang terhubung, dalam format biner.
public ref class BinaryFormatter sealed : System::Runtime::Serialization::IFormatter
public ref class BinaryFormatter sealed : System::Runtime::Remoting::Messaging::IRemotingFormatter
public sealed class BinaryFormatter : System.Runtime.Serialization.IFormatter
[System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class BinaryFormatter : System.Runtime.Serialization.IFormatter
public sealed class BinaryFormatter : System.Runtime.Remoting.Messaging.IRemotingFormatter
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BinaryFormatter : System.Runtime.Remoting.Messaging.IRemotingFormatter
type BinaryFormatter = class
interface IFormatter
[<System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type BinaryFormatter = class
interface IFormatter
type BinaryFormatter = class
interface IRemotingFormatter
interface IFormatter
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryFormatter = class
interface IRemotingFormatter
interface IFormatter
Public NotInheritable Class BinaryFormatter
Implements IFormatter
Public NotInheritable Class BinaryFormatter
Implements IRemotingFormatter
- Warisan
-
BinaryFormatter
- Atribut
- Penerapan
Keterangan
Peringatan
BinaryFormatter
tidak aman dan tidak dapat dibuat aman. Untuk informasi selengkapnya, lihat panduan keamanan BinaryFormatter.
Kelas SoapFormatter dan BinaryFormatter mengimplementasikan IRemotingFormatter antarmuka untuk mendukung panggilan prosedur jarak jauh (RPC), dan IFormatter antarmuka (diwariskan oleh IRemotingFormatter) untuk mendukung serialisasi grafik objek. Kelas ini SoapFormatter juga mendukung RPC dengan ISoapMessage objek, tanpa menggunakan IRemotingFormatter fungsionalitas.
Selama RPC, IRemotingFormatter antarmuka memungkinkan spesifikasi dua grafik objek terpisah: grafik objek untuk diserialisasikan, dan grafik tambahan yang berisi array objek header yang menyampaikan informasi tentang panggilan fungsi jarak jauh (misalnya, ID transaksi atau tanda tangan metode).
RPC yang menggunakan BinaryFormatter terpisah menjadi dua bagian berbeda: panggilan metode, yang dikirim ke server dengan objek jarak jauh yang berisi metode yang disebut, dan respons metode, yang dikirim dari server ke klien dengan status dan informasi respons dari metode yang disebut.
Selama serialisasi metode, panggil objek pertama grafik objek harus mendukung IMethodCallMessage antarmuka. Untuk mendeserialisasi panggilan metode, gunakan Deserialize metode dengan HeaderHandler parameter . Infrastruktur jarak jauh menggunakan HeaderHandler delegasi untuk menghasilkan objek yang mendukung ISerializable antarmuka. BinaryFormatter Ketika memanggil HeaderHandler delegasi, ia mengembalikan URI objek jarak jauh dengan metode yang sedang dipanggil. Objek pertama dalam grafik yang dikembalikan mendukung IMethodCallMessage antarmuka.
Prosedur serialisasi untuk respons metode identik dengan panggilan metode, kecuali objek pertama grafik objek harus mendukung IMethodReturnMessage antarmuka. Untuk mendeserialisasi respons metode, gunakan DeserializeMethodResponse metode . Untuk menghemat waktu, detail tentang objek penelepon tidak dikirim ke objek jarak jauh selama panggilan metode. Detail ini malah diperoleh dari panggilan metode asli, yang diteruskan ke DeserializeMethodResponse metode dalam IMethodCallMessage parameter . Objek pertama dalam grafik yang dikembalikan oleh DeserializeMethodResponse metode mendukung IMethodReturnMessage antarmuka.
Penting
Menggunakan serialisasi biner untuk mendeserialisasi data yang tidak tepercaya dapat menyebabkan risiko keamanan. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input dan panduan keamanan BinaryFormatter.
Pengganti tidak berpasangan
Setiap karakter pengganti yang tidak berpasangan hilang dalam serialisasi biner. Misalnya, string berikut berisi karakter (\ud800
Unicode pengganti tinggi ) di antara dua Test
kata:
Test\ud800Test
Sebelum serialisasi, array byte string adalah sebagai berikut:
Nilai Array Byte | Karakter |
---|---|
84 | T |
101 | e |
115 | s |
116 | t |
55296 | \ud800 |
84 | T |
101 | e |
115 | s |
116 | t |
Setelah deserialisasi, karakter Unicode pengganti tinggi hilang:
Nilai Array Byte | Karakter |
---|---|
84 | T |
101 | e |
115 | s |
116 | t |
84 | T |
101 | e |
115 | s |
116 | t |
Konstruktor
BinaryFormatter() |
Kedaluwarsa.
Menginisialisasi instans BinaryFormatter baru kelas dengan nilai default. |
BinaryFormatter(ISurrogateSelector, StreamingContext) |
Kedaluwarsa.
Menginisialisasi instans BinaryFormatter baru kelas dengan pemilih pengganti dan konteks streaming tertentu. |
Properti
AssemblyFormat |
Kedaluwarsa.
Mendapatkan atau mengatur perilaku deserializer sehubungan dengan menemukan dan memuat rakitan. |
Binder |
Kedaluwarsa.
(Tidak aman) Mendapatkan atau mengatur objek jenis SerializationBinder yang mengontrol pengikatan objek berseri ke jenis. |
Context |
Kedaluwarsa.
Mendapatkan atau mengatur StreamingContext untuk formatter ini. |
FilterLevel |
Kedaluwarsa.
Mendapatkan atau mengatur TypeFilterLevel deserialisasi otomatis yang BinaryFormatter dilakukan. |
SurrogateSelector |
Kedaluwarsa.
Mendapatkan atau mengatur ISurrogateSelector yang mengontrol substitusi jenis selama serialisasi dan deserialisasi. |
TypeFormat |
Kedaluwarsa.
Mendapatkan atau mengatur format di mana deskripsi jenis ditata dalam aliran serial. |
Metode
Deserialize(Stream) |
Kedaluwarsa.
Mendeserialisasi aliran yang ditentukan ke dalam grafik objek. |
Deserialize(Stream, HeaderHandler) |
Kedaluwarsa.
Mendeserialisasi aliran yang ditentukan ke dalam grafik objek. yang disediakan HeaderHandler menangani header apa pun di aliran tersebut. |
DeserializeMethodResponse(Stream, HeaderHandler, IMethodCallMessage) |
Kedaluwarsa.
Mendeserialisasi respons terhadap panggilan metode jarak jauh dari yang disediakan Stream. |
Equals(Object) |
Kedaluwarsa.
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Kedaluwarsa.
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Kedaluwarsa.
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Kedaluwarsa.
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
Serialize(Stream, Object) |
Kedaluwarsa.
Menserialisasikan objek, atau grafik objek dengan bagian atas (akar) yang ditentukan, ke aliran yang diberikan. |
Serialize(Stream, Object, Header[]) |
Kedaluwarsa.
Menserialisasikan objek, atau grafik objek dengan bagian atas yang ditentukan (root), ke aliran yang diberikan yang melampirkan header yang disediakan. |
ToString() |
Kedaluwarsa.
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
UnsafeDeserialize(Stream, HeaderHandler) |
Kedaluwarsa.
Mendeserialisasi aliran yang ditentukan ke dalam grafik objek. yang disediakan HeaderHandler menangani header apa pun di aliran tersebut. |
UnsafeDeserializeMethodResponse(Stream, HeaderHandler, IMethodCallMessage) |
Kedaluwarsa.
Mendeserialisasi respons terhadap panggilan metode jarak jauh dari yang disediakan Stream. |