डॉ ABT के जवाब चयनित जवाब से बेहतर है। हां, 2 की शक्तियों में मूल्य होने के लिए आवश्यक है, लेकिन यह एक्सएमएल सीरियलाइजेशन मुद्दों के लिए विशिष्ट नहीं है।
Enums सबसे वस्तुओं की तुलना बहुत अलग ढंग क्रमानुसार लगे हुए हैं। नामों के मूल्य (ser(MyEnumProperty.[Name]) = 8
) का उपयोग करने के बजाय एनम्स एक्सएमएल उनके नाम (ser(MyEnumProperty.[Name]) = "[Name]"
) द्वारा क्रमबद्ध किया जाएगा।
// Version 1.0
[Flags]
public enum MyEnum
{
None = 0,
First = 1,
Second = 2,
All = First | Second
}
public MyEnum MyEnumProperty = MyEnum.All;
आप MyEnumProperty
क्रमानुसार करने थे, तो आप <MyEnum>
All
</MyEnum>
मिलेगा। हालांकि, अगर आप (int)MyEnumProperty
धारावाहिक, आप <int>
3
</int>
मिलेगा। मैं उल्लेख करना चाहते हैं यही कारण है कि इस अविश्वसनीय रूप से पता करने के लिए आवश्यक है ...
// Version 2.0
[Flags]
public enum MyEnum
{
None = 0,
First = 1,
Second = 2,
Third = 4, // <---
All = First | Second | Third
}
मैं नए Enum मूल्यों, (एक DLL के रूप में) अन्य परियोजनाओं में इस्तेमाल किया गया है हो सकता है जोड़ दिया है। ओह वाह ... ये त्रुटियां क्या हैं?
अब आप एक्सएमएल सीरियलाइजेशन (Binary Serialization के साथ पुराने संस्करण में एनम के अपने नवीनतम संस्करण को विलुप्त नहीं कर सकते हैं)!
माइक्रोसॉफ्ट द्वारा ToEnum विधि पर एक नजर डालें। यह एक आईडी (कहते हैं, अद्यतन एनम में "तीसरा") को देखने से रोकता है क्योंकि यह मूल enum में मौजूद नहीं है। यह भी ध्यान रखें कि एक त्रुटि फेंक दी जाएगी जो आपके प्रोजेक्ट को तोड़ सकती है अगर इसे संभाला नहीं जाता है।
सुरक्षित रहें, हमेशा क्रमानुसार और जब मौका दिया मूल्य से deserialize। यही कारण है कि हम शुरू करने के लिए ध्वजांकित enums जैसे वस्तुओं का उपयोग करें। ध्वजांकित enums जैसे ऑब्जेक्ट्स पीछे की संगतता और निर्भरता मुद्दों को कम करता है।
ठीक जटिल कामों से पहले मेरी मदद मिली है, ठीक है, लेकिन यह सामान्य है, लेकिन क्या यह सामान्य है कि मुझे सभ्य ईमेल मेरे दो मूल्यों के बीच एक स्थान के साथ मिलता है? सादगी और एमएसडीएन संदर्भ के लिए –
+1। हालांकि आपके उत्तर से 11: 1 अपवॉट अनुपात थोड़ा सा है! कभी नहीं;) –
@ डॉ एंड्रयूबर्नेट-थॉम्पसन: सहमत। इसका कारण यह हो सकता है कि आपने अपना ध्यान धारावाहिक भाग पर रखा है और बाद में केवल उस हिस्से को जोड़ा जो अंतर्निहित समस्या को हल करता है। –