यहाँ मेरी कक्षा है:सी # में शून्य करने के लिए शून्य सरणी को deserialize कैसे करें?
public class Command
{
[XmlArray(IsNullable = true)]
public List<Parameter> To { get; set; }
}
जब मैं इस वर्ग की एक वस्तु को क्रमानुसार:
var s = new XmlSerializer(typeof(Command));
s.Serialize(Console.Out, new Command());
यह के रूप में प्रिंट की उम्मीद (xml शीर्ष और डिफ़ॉल्ट एमएस नामस्थान छोड़े गए हैं):
<Command><To xsi:nil="true" /></Command>
जब मैंने यह एक्सएमएल लिया और इसे deserialize करने की कोशिश की मैं अटक गया, क्योंकि यह हमेशा "शून्य नहीं" प्रिंट:
var t = s.Deserialize(...);
if (t.To == null)
Console.WriteLine("Null");
else
Console.WriteLine("Not null");
मेरी सूची को शून्य बनाने के लिए deserializer को कैसे बल दें, अगर यह xml में शून्य है?
यह वास्तव में है कि आप के लिए महत्वपूर्ण है के रूप में यदि आप कोई सूची या एक खाली सूची है का उपयोग करते हैं? –
हाँ। मैं निश्चित रूप से कुछ झंडे के साथ इस मामले को हल कर सकता हूं, लेकिन मैं जानना चाहता हूं कि कोई अच्छा मानक समाधान है या नहीं। –
नल ऑब्जेक्ट्स से बचना आम तौर पर एक अच्छी बात है (कम त्रुटि-प्रवण, कोड के चारों ओर नल की जांच करने की आवश्यकता नहीं है)। ध्वज का उपयोग स्पष्ट रूप से इंगित करेगा कि वास्तव में उस शून्य मान का प्रतिनिधित्व करता है। – Groo