Tôi có dữ liệu đã được lưu trữ sử dụng serialization nhị phân cho các lớp sau đây:Làm thế nào để tôi deserialize dữ liệu cũ cho một loại đã thay đổi?
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
Tại một số điểm, lớp học đã được thay đổi như sau:
[Serializable]
public abstract class BaseBusinessObject
{
private Dictionary<string, string> _fieldErrors = new Dictionary<string, string>();
protected virtual Dictionary<string, string> FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
này đang gây ra những vấn đề deserializing dữ liệu cũ.
Suy nghĩ đầu tiên của tôi là triển khai ISerializable
, nhưng lớp này có nhiều thuộc tính cũng như hàng trăm lớp kế thừa mà tôi sẽ phải triển khai thực hiện điều này.
Tôi muốn thay đổi dữ liệu cũ để phù hợp với cấu trúc hiện tại trong quá trình deserialization hoặc có một cách sạch sẽ để nâng cấp dữ liệu cũ.
Điều này cung cấp cách tiếp cận thực tế nhất cho nhu cầu của tôi, nhưng tôi đã đi xuống một tuyến đường khác. – ramnik