Vâng, có những lúc những gì bạn mô tả có thể là một cách tiếp cận rất xấu. Điều này là giả sử khi bạn nói 'tuần tự hóa' bạn đang nói về việc sử dụng khả năng của ngôn ngữ / khung để chỉ cần lấy một đối tượng và xuất trực tiếp đến một loại luồng nhị phân nào đó. Vấn đề là cấu trúc lớp thay đổi qua nhiều năm. Bạn có thể tải lại một tệp được tạo trong phiên bản trước của ứng dụng nếu tất cả các lớp của bạn thay đổi trong một phiên bản mới hơn không?
Để ổn định lâu dài định dạng tệp, tôi đã thấy tốt hơn nên xắn tay áo lên một chút bây giờ và đặc biệt viết các phương thức 'tuần tự hóa' / 'truyền phát' của riêng bạn trong các lớp học. tức là, tự xử lý việc ghi các giá trị vào luồng. Viết tiêu đề khi bạn nêu mô tả phiên bản định dạng và sau đó dữ liệu bạn muốn lưu theo thứ tự bạn muốn. Về mặt đọc, việc xử lý các phiên bản khác nhau của định dạng tệp trở nên dễ dàng hơn rất nhiều.
Tất nhiên, tùy chọn khác là XML hoặc JSON. Không nhất thiết là lớn nhất cho nội dung nặng nhị phân, nhưng đơn giản và dễ đọc của con người ... một điểm cộng lớn cho khả năng tồn tại lâu dài.
BinaryFormatter
.