मैं किसी संपत्ति के क्रमबद्ध व्यवहार को बदलने का तरीका ढूंढने का प्रयास कर रहा हूं।किसी विशेषता के साथ संपत्ति को ओवरराइड करना
चलें कहते हैं कि मैं इस तरह एक स्थिति है:
[Serializable]
public class Record
{
public DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
// other useful properties ...
}
अब मैं EmployeeRecord क्रमानुसार करने चाहते हैं। मैं रिकॉर्ड क्लास से अंतिम अद्यतन संपत्ति को क्रमबद्ध नहीं करना चाहता हूं। (जब मैं रिकॉर्ड को क्रमबद्ध करता हूं, तो मैं अंतिम अद्यतन को क्रमबद्ध करना चाहता हूं)।
सबसे पहले मैं नई कीवर्ड का उपयोग करें और फिर जोड़ने XmlIgnore विशेषता के आधार पर LastUpdated संपत्ति छुपा की कोशिश की:
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public new DateTime LastUpdated {get; set; }
// other useful properties ...
}
लेकिन वह काम नहीं किया। तब मैं बनाने आधार आभासी LastUpdated और यह अधिभावी, विशेषता रखने की कोशिश की:
[Serializable]
public class Record
{
public virtual DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public override DateTime LastUpdated {get; set; }
// other useful properties ...
}
यह या तो काम नहीं किया। दोनों प्रयासों में LastUpdated XmlIgnore विशेषता को अनदेखा कर दिया और खुशी से serializing के अपने व्यापार के बारे में चला गया।
क्या ऐसा करने का कोई तरीका है जो मैं करने की कोशिश कर रहा हूं?
आप इसे कैसे क्रमबद्ध कर रहे हैं? क्योंकि यदि आप बाइनरी क्रमिकरण का उपयोग करते हैं, तो XmlIgnore विशेषता बहुत अच्छी नहीं होगी। –
मैं XmlSerializer –
का उपयोग कर रहा हूं आप बाइनरी क्रमबद्धता के लिए NonSerialized विशेषता का उपयोग करेंगे। – snarf