2009-03-04 1 views
6

वर्तमान में मैं किसी ऑब्जेक्ट को क्रमबद्ध और deserialize करने के लिए XmlSerializer का उपयोग कर रहा हूं। एक्सएमएल एक अपरिभाषित क्रम में उत्पन्न होता है जो समझ में आता है लेकिन ऑब्जेक्ट के संस्करणों की तुलना करते समय इसे परेशान करता है, क्योंकि प्रत्येक बार गुणों का क्रम अलग होता है। तो उदाहरण के लिए मैं कोई अंतर देखने के लिए एक सामान्य diff उपकरण का उपयोग नहीं कर सकता।एक निर्धारित क्रम में XmlSerializer आउटपुट xml बनाने का कोई तरीका?

क्या मेरे xml को उसी क्रम में जेनरेट करने का कोई आसान तरीका है, बिना ReadXml और WriteXml विधियों को लिखने के? मेरे पास कक्षा में बहुत सारी संपत्तियां हैं, और हर बार नए जोड़ते हैं, इसलिए लिखना नहीं है और फिर उस कोड को बनाए रखना पसंद करेंगे।

(सी # .net 2,0)

+0

क्या आप ऐसा उदाहरण प्रदान कर सकते हैं जो इस "अपरिभाषित आदेश" को पुन: उत्पन्न करता है? मैंने इसे कभी नहीं देखा है, और मुझे नहीं लगता कि एक्सएमएल सीरिएलाइज़र परिणाम होने पर परिणाम को विलुप्त करने में सक्षम होगा। –

उत्तर

9

XmlElement विशेषता एक order property है। आप इसे एक शुरुआत के रूप में उपयोग कर सकते हैं।

आप एक्सएमएल फाइल में अंतर खोजने की जरूरत है, तो आप this पर एक नज़र डालें कर सकते हैं।

2

के साथ अपनी गुणों को सजाने के लिए, Order पैरामीटर सेट करें।

0

पुनश्च: मैं नहीं मानता XmlSerializer द्वारा उत्पन्न एक्सएमएल एक अपरिभाषित क्रम में है। यह अनियंत्रित हो सकता है, लेकिन यह ज्ञात है। मेरा मानना ​​है कि ऑर्डर विशेषताओं की अनुपस्थिति में, XmlSerializer सभी सार्वजनिक गुणों को क्रमबद्ध करता है, अल्फा-प्रोप नाम द्वारा क्रमबद्ध, और फिर सभी सार्वजनिक फ़ील्ड्स, अल्फा-नाम से क्रमबद्ध।

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