2009-10-03 14 views
26

में फ़ील्ड ऑर्डर को अनदेखा करें, जब deserializing, DataContractSerializer को केवल नाम मैचों की आवश्यकता नहीं है, लेकिन यह भी कि अन्य तत्वों के संबंध में यह एक निश्चित क्रम में है।DataContractSerializer

मेरा आवेदन ऐसा है कि प्रत्येक फ़ील्ड को इसके नाम से विशिष्ट रूप से पहचाना जा सकता है। इसलिए मैं XML फ़ाइल के लिए किसी भी क्रम में तत्वों को शामिल करना और deserializer के लिए अभी भी काम करना संभव होगा।

क्या इस तरह डेटाकंट्रैक्ट स्थापित करना संभव है?

Data Member Order में परिचयात्मक पैरा पता चलता है कि आदेश लागू की जाती है वैकल्पिक, लेकिन मैं एक तरह से वास्तव में यह वैकल्पिक बनाने के लिए नहीं मिली है।

फ़ॉलो-अप प्रश्न: Simple data file versioning with DataContractSerializer

उत्तर

17

कोई यह वैकल्पिक नहीं है। ऑर्डरिंग को स्पष्ट रूप से निर्दिष्ट करना वैकल्पिक है, लेकिन अन्यथा ऑर्डर आपके द्वारा जुड़े मूल नियमों (आधार प्रकार पहले, वर्णमाला, ...) द्वारा निर्धारित किया जाता है।

प्रारंभिक अनुच्छेद बस यह कह रहा है कि आपको हमेशा आदेश के बारे में जानने या देखभाल करने की आवश्यकता नहीं है - उदाहरण के लिए यदि आप जेनरेट प्रॉक्सी का उपयोग कर रहे हैं।

यदि आप किसी फ़ाइल को deserialize करने के लिए DataContractSerializer का उपयोग कर रहे हैं, तो सबसे अच्छा समाधान मैं XSLT का उपयोग करने के लिए इसे deserializing से पहले सही क्रम में बदलने के लिए उपयोग करना होगा।

यदि आप एक वेब सेवा (जिसे डेटाकंट्रैक्टसेरियलाइज़र के लिए डिज़ाइन किया गया था) कॉल कर रहे हैं, तो आप अनुबंध में ऑर्डर करने के लिए बेहतर तरीके से बंद हैं।

+4

मैं बस एक मौजूदा फ़ाइल में एक नया मान जोड़ रहा हूं। यह आश्चर्य की बात थी कि मुझे न केवल सही नाम के साथ बल्कि सही स्थान पर भी डालना होगा। –

संबंधित मुद्दे