मैं इस उदाहरण के रूप में, एक सी # वर्ग कि BinaryFormatter द्वारा डिस्क पर धारावाहिक है:.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;
}
बाद में, मैंने एक या निम्न
के अधिक से इस वर्ग के refactor करने के लिए चाहते हैं - इसका नाम बदलें
- अपने नाम स्थान
बदलें - जहाँ तक मेरा बता सकते हैं कि ठीक उसी नाम, नाम स्थान और विधानसभा नाम के साथ एक वर्ग उपलब्ध है, बाइनरी फ़ाइल केवल डी-श्रृंखलाबद्ध किया जा सकता है एक और विधानसभा
में ले जाएँ।
मैं इसके आसपास कैसे काम करूं?
क्या Version Tolerant Serialization तोड़ने के बिना डी-सीरियलाइजेशन को एक अलग वर्ग नाम, नामस्थान और असेंबली में मैप करना संभव है?
तो क्या आपका मतलब है कि व्यक्ति को ISerializable और GetObjectData() लागू करना चाहिए? डी-सीरियलाइज़र कैसे पता चलेगा कि इस सटीक व्यक्ति वर्ग का उपयोग किया जाना चाहिए, जब इसका कोई अलग नाम, नामस्थान और/या असेंबली हो? क्या मैं किसी भी तरह से डी-सीरियलाइज़र को बता सकता हूं कि किस वर्ग का उपयोग करना है? – angularsen