Tôi nghĩ rằng cả người Java và .Net lần này đều mắc lỗi, tốt hơn hết là nên đặt mọi thứ có thể tuần tự hóa theo mặc định và chỉ cần đánh dấu những lớp không thể tuần tự hóa một cách an toàn.
Ví dụ trong Smalltalk (một ngôn ngữ được tạo ra trong những năm 70) mọi đối tượng đều có thể tuần tự hóa theo mặc định. Tôi không biết tại sao điều này lại không xảy ra trong Java, vì thực tế là phần lớn các đối tượng đều an toàn để tuần tự hóa và chỉ một vài trong số chúng thì không.
Đánh dấu một đối tượng là có thể tuần tự hóa (với một giao diện) không làm cho đối tượng đó có thể được tuần tự hóa một cách kỳ diệu, nó hoàn toàn có thể được tuần tự hóa , chỉ là bây giờ bạn đã thể hiện điều gì đó mà hệ thống có thể tự tìm thấy, vì vậy tôi không thấy lý do chính đáng nào cho việc tuần tự hóa như bây giờ.
Tôi nghĩ rằng đó là một quyết định sai lầm của các nhà thiết kế hoặc tuần tự hóa là một suy nghĩ muộn màng, hoặc nền tảng này chưa bao giờ sẵn sàng thực hiện tuần tự hóa theo mặc định trên tất cả các đối tượng một cách an toàn và nhất quán.