Cho một lớp như thế này:thử nghiệm cho Optional Dòng khi sử dụng .NET Tuỳ chỉnh serialization
[Serializable]
public class MyClass {
string name;
string address;
public MyClass(SerializationInfo info, StreamingContext context){
name = info.GetString("name");
if(/* todo: check if a value for address exists */)
address = info.GetString("address");
}
public void GetObjectData(SerializationInfo info, StreamingContext context){
info.AddValue(name);
if(address != null)
info.AddValue(address);
}
}
Làm thế nào để kiểm tra xem một giá trị cho trường address
tồn tại trước khi gọi info.GetString(address)
?
Có, tôi hiểu rằng tôi có thể chỉ cần viết một trường rỗng address
nhưng vấn đề thực sự của tôi là các phiên bản trước đó của MyClass
, không có trường địa chỉ.
Lưu ý: Tôi có lý do chính đáng để sử dụng tùy chỉnh tuần tự hóa. Có một số lĩnh vực tĩnh đang được sử dụng như đơn và deserialization mặc định sẽ không tôn trọng điều đó.