Professional Documents
Culture Documents
LTGD C6
LTGD C6
Chương 6. Làm
việc với tập tin và
thư mục
1
2/21/2024
Chương 6. Làm
việc với tập tin và
thư mục
2
2/21/2024
Chương 6. Làm
việc với tập tin và
thư mục
3
2/21/2024
4
2/21/2024
10
5
2/21/2024
11
Chương 6. Làm
việc với tập tin và
thư mục
12
6
2/21/2024
6.3 Serialization
•Serialization
• Lưu đối tượng trong chương trình vào file, bộ nhớ, truyền qua
mạng.
• Ví dụ: tạo và vẽ một đối tượng hình tròn, lưu vào file.
•Deserialization:
• Phục hồi dữ liệu về trạng thái ban đầu.
• Ví dụ: đọc file đã lưu đối
tượng hình tròn trước đó,
vẽ lại trên giao diện.
13
Serialization (tt)
•.NET Framework cung cấp 2 kỹ thuật serialize:
•Binary serialize (serialize nhị phân):
•Giữ nguyên cấu trúc đối tượng
•Lưu đối tượng vào clipboard, ghi ra file, truyền qua mạng.
•XML và SOAP Serialize:
•Chỉ serialize các trường dữ liệu public
•Truyền dữ liệu từ các dịch vụ như web service.
14
7
2/21/2024
Serialization (tt)
•Các đối tượng cơ cở đều có khả năng serialize.
•Đối tượng do người sử dụng định nghĩa: đặt [Serializable]
trên khai báo lớp
•Các thành phần (phương thức, biến thành viên, thuộc
tính,…) không muốn serialize: đặt [NonSerialized] trên các
khai báo
•Thực thi interface IFormatter
• (namespace System.Runtime.Serialization)
15
Serialization (tt)
•BinaryFormatter: ➔ nhị phân
• namespace System.Runtime.Serialization.Formatters.Binary
•SoapFormatter: ➔ XML
• namespace System.Runtime.Serialization.Formatters.Soap
•Interface IFormatter cung cấp hai phương thức
• Serialize()
• Deserialize()
16
8
2/21/2024
Serialization (tt)
•Các bước Serialization:
• Đặt [Serializable] trên khai báo lớp
• Khai báo các namespace
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
• Tạo đối tượng FileStream
FileStream stream = new FileStream(“filename", FileMode.Create,
FileAccess.Write);
• Tạo đối tượng BinaryFormatter
BinaryFormatter bf = new BinaryFormatter();
• Gọi phương thức Serialize
bf.Serialize(stream, objclass);
17
Serialization (tt)
•Các bước Deserialization:
• Khai báo các namespace:
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
• Tạo đối tượng FileStream
FileStream stream = new FileStream(“filename",
FileMode.Open,FileAccess.Read);
• Tạo đối tượng BinaryFormatter
BinaryFormatter bf = new BinaryFormatter();
• Gọi phương thức Deserialize
objclass = (objclass) bf. Deserialize(stream);
18
9
2/21/2024
19
10