तत्व और शून्य तत्व के बीच एक अंतर है।
एक गायब तत्व, <a><b>2</b></a>
। यहां सी डिफ़ॉल्ट वैल्यू विशेषता का उपयोग करके निर्दिष्ट डिफ़ॉल्ट मान लेगा, या कोई स्पष्ट डिफ़ॉल्ट नहीं होने पर शून्य हो जाएगा।
एक शून्य तत्व <a><b>2</b><c xs:Nil='true'/></a>
। यहाँ आप शून्य हो जाएगा।
जब आप <a><b>2</b><c></c><a/>
करते हैं तो xml serializer स्ट्रिंग को पार्स करने का प्रयास करेगा। एक पूर्णांक के रूप में लक्षण सही ढंग से विफल हो जाएगा।
के बाद से अपने प्रदाता अवैध एक्सएमएल पैदा कर रहा है आप अगर XmlSerializer का उपयोग कर, यह करने के लिए की आवश्यकता होगी:
[XmlRoot(ElementName = "a")]
public class A
{
[XmlElement(ElementName = "b")]
public int? B { get; set; }
[XmlElement(ElementName = "c")]
public string _c { get; set; }
public int? C
{
get
{
int retval;
return !string.IsNullOrWhiteSpace(_c) && int.TryParse(_c, out retval) ? (int?) retval : null;
}
}
}
या थोड़ा बेहतर का उपयोग कर DataContractSerializer
[DataContract(Name="a")]
public class A1
{
[DataMember(Name = "b")]
public int? B { get; set; }
[DataMember(Name = "c")]
private string _c { get; set; }
public int? C
{
get
{
int retval;
return !string.IsNullOrWhiteSpace(_c) && int.TryParse(_c, out retval) ? (int?)retval : null;
}
}
}
हालांकि DataContractSerializer का समर्थन नहीं करता विशेषताएं अगर यह एक समस्या है।
मैं इस लिंक से जानकारी शामिल हो गए। यह शून्य-लंबाई वाली स्ट्रिंग है। –
कृपया अपने शीर्षक "सी #" के साथ उपसर्ग न करें। टैग के लिए यही है। –