मैं अपने enum-value को int के रूप में क्रमबद्ध करना चाहता हूं, लेकिन मुझे केवल नाम मिलता है।मैं एक इंट मान को int के रूप में कैसे क्रमबद्ध कर सकता हूं?
public class Request {
public RequestType request;
}
public enum RequestType
{
Booking = 1,
Confirmation = 2,
PreBooking = 4,
PreBookingConfirmation = 5,
BookingStatus = 6
}
और कोड
Request req = new Request();
req.request = RequestType.Confirmation;
XmlSerializer xml = new XmlSerializer(req.GetType());
StringWriter writer = new StringWriter();
xml.Serialize(writer, req);
textBox1.Text = writer.ToString();
This answer (एक और सवाल करने के लिए) (बस सुनिश्चित करें कि मैं इसे गलत नहीं कर रहा हूँ होने के लिए):
यहाँ मेरी (नमूना) वर्ग और enum है ऐसा लगता है कि enums डिफ़ॉल्ट रूप से ints को serialize करना चाहिए, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है।
<?xml version="1.0" encoding="utf-16"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<request>Confirmation</request>
</Request>
मैं हर मूल्य पर एक "[XmlEnum (" X ")]" विशेषता डालकर मूल्य के रूप में क्रमानुसार करने में सक्षम है, लेकिन यह सिर्फ गलत लगता है: यहाँ मेरी उत्पादन होता है।
बस इतना स्पष्ट है कि स्निपेट क्या करता है XmlSerializer - IGNORE MyEnum प्रॉपर्टी को बताता है। और FooInt32 प्रॉपर्टी को सर्विसेज करें, जो सिर्फ इंट 32 मान के लिए MyEnum प्रोप को रोकता है। यह आपके लिए पूरी तरह से काम करेगा। – Cheeso
यह तृतीय पक्ष पुस्तकालयों से एनम के संदर्भ में एक अच्छा समाधान है। – CtrlDot
यह भी ध्यान दिया जाना चाहिए कि FooInt32 संपत्ति को Foo नाम के रूप में क्रमबद्ध किया गया है।मुझे यह जवाब सबसे ज्यादा पसंद है क्योंकि अगर आपके पास अपने enum में दर्जनों मूल्य हैं तो आपको केवल एक बार ऐसा करना होगा। –