Tôi có một C class # đó là serialized vào đĩa bởi BinaryFormatter, chẳng hạn như ví dụ sau:Làm thế nào để cấu trúc lại một lớp được tuần tự hóa trong .NET?
// Version 3.0
[Serializable]
public class Person
{
public string FullName;
[OptionalField(VersionAdded=2)]
public string NickName;
[OptionalField(VersionAdded=2)]
public DateTime BirthDate;
[OptionalField(VersionAdded=3)]
public int Weight;
}
Sau đó, tôi muốn Refactor lớp này bằng một hoặc nhiều các
sau - Thay đổi tên của nó
- Thay đổi không gian tên của nó
- Di chuyển đến lắp ráp khác
theo như tôi có thể nói, các tập tin nhị phân chỉ có thể bỏ đăng nếu một lớp với cùng tên, namespace và lắp ráp tên chính xác là có sẵn.
Làm cách nào để giải quyết vấn đề này?
Có thể ánh xạ de-serialization đến một tên lớp khác, không gian tên và lắp ráp mà không vi phạm Version Tolerant Serialization?
Vì vậy, bạn có nghĩa là Người nên triển khai ISerializable và GetObjectData()? Làm thế nào sẽ de-serializer biết rằng lớp người này chính xác nên được sử dụng, khi nó có một tên khác nhau, không gian tên và/hoặc lắp ráp? Tôi có thể nói bằng cách nào đó nói với de-serializer mà lớp học để sử dụng? – angularsen