CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 82

82
Chương 2: Thao tác dữ liệu

lớp .NET Framework cung cấp các hiện thực formatter sau đây để tuần tự hóa
đối tượng theo dạng nhị phân hay SOAP
:

System.Runtime.Serialization.Formatters.Binary.BinaryFormatter

System.Runtime.Serialization.Formatters.Soap.SoapFormatter

Lớp

BinaryFormatter

SoapFormatter

có thể được sử dụng để tuần tự hóa một đối tượng

của bất kỳ kiểu nào được gắn với đặc tính

System.SerializableAttribute

.

BinaryFormatter

sinh ra một stream dữ liệu nhị phân mô tả đối tượng và trạng thái của nó, trong khi

SoapFormatter

sinh ra một tài liệu SOAP.

Cả hai lớp

BinaryFormatter

SoapFormatter

đều hiện thực giao diện

System.Runtime.

Serialization.IFormatter

, giao diện này định nghĩa hai phương thức:

Serialize

Deserialize

.

Serialize

nhận một tham chiếu

System.Object

và một tham chiếu

System.IO.Stream

làm đối số, tuần tự hóa

Object

và ghi nó vào

Stream

.

Deserialize

nhận một tham chiếu

Stream

làm đối số, đọc dữ liệu của đối tượng được-

tuần-tự-hóa từ

Stream

, và trả về một tham chiếu

Object

đến đối tượng được-giải-tuần-

tự-hóa. Bạn phải ép tham chiếu

Object

này về kiểu thích hợp.

Để gọi các phương thức

Serialize

Deserialize

của lớp

BinaryFormatter

, mã lệnh của bạn

phải được cấp phần tử

SerializationFormatter

của lớp

System.Security.Permissions.

SecurityPermission

.

Để gọi các phương thức

Serialize

Deserialize

của lớp

SoapFormatter

, mã lệnh của bạn

phải được cấp quyền “tin tưởng tuyệt đối” (full trust) vì assembly System.Runtime.
Serialization.Formatters.Soap.dll
(lớp

SoapFormatter

được khai báo bên trong assembly này)

không cho phép các mã lệnh chỉ được-tin-cậy-một-phần (partially trusted caller) sử dụng nó.
Tham khảo mục 13.1 để có thêm thông tin về mã lệnh được-tin-cậy-một-phần.
Lớp

BinarySerializationExample

dưới đây minh họa cách sử dụng lớp

BinaryFormatter

để

tuần tự hóa một

System.Collections.ArrayList

chứa danh sách tên người vào một file. Sau

đó,

ArrayList

được giải tuần tự hóa từ file và nội dung của nó sẽ được hiển thị trong cửa sổ

Console.

using System.IO;

using System.Collections;

using System.Runtime.Serialization.Formatters.Binary;

public class BinarySerializationExample {

public static void Main() {

// Tạo và cấu hình ArrayList để tuần tự hóa.

ArrayList people = new ArrayList();

people.Add("Phuong");

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.