Nó phụ thuộc vào loại serialization. ví dụ ở đây đầy đủ để thực hiện điều này với BinaryFormatter:
Bạn có thể sử dụng OnDeserializedAttribute:
[Serializable]
class SerializableEntity
{
[OnDeserialized]
private void OnDeserialized()
{
id = RetrieveId();
}
private int RetrievId() {}
[NonSerialized]
private int id;
}
Và có một cách khác để làm điều này bằng IDeserializationCallback:
[Serializable]
class SerializableEntity: IDeserializationCallback
{
void IDeserializationCallback.OnDeserialization(Object sender)
{
id = RetrieveId();
}
private int RetrievId() {}
[NonSerialized]
private int id;
}
Ngoài ra bạn có thể đọc lớn Jeffrey Richter bài viết về tuần tự hóa: part 1 và part 2.
Nguồn
2010-06-11 09:41:10
Để có câu trả lời tốt hơn, đề nghị bạn làm rõ cơ chế tuần tự hóa của mình - ví dụ:XML serialization, Data Contract serialization, vv – Reddog