Uncategorized

Serialize và Deserialize một đối tượng vào file và ngược lại

Lớp BinaryFormatter và 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 và 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 và
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 đượctuần-tự-hóa từ Stream, và trả về một tham chiếu Object đến đối tượng được-giải-tuầntự-hóa. Bạn phải ép tham chiếu Object này về kiểu thích hợp.

using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
ArrayList people = new ArrayList();
people.Add(“Phuong”);
people.Add(“Phong”);
people.Add(“Nam”);
// Tuần tự hóa đối tượng ArrayList.
FileStream str = File.Create(“people.bin”);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(str, people);
str.Close();
// Giải tuần tự hóa đối tượng ArrayList.
str = File.OpenRead(“people.bin”);
bf = new BinaryFormatter();
people = (ArrayList)bf.Deserialize(str);
str.Close();
// Hiển thị nội dung của đối tượng ArrayList
// đã-được-giải-tuần-tự-hóa.
foreach (string s in people)
{
System.Console.WriteLine(s);
}
}
}
}

 

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s