क्या सी # में int से एक enum deserialize संभव है। जैसे अगर मैं निम्नलिखित वर्ग है:सी # पूर्णांक से deserializing enums
class Employee
{
public string Name { get; set;}
public int EmployeeTypeID { get; set;}
}
मैं आसानी से इस एक्सएमएल
<Employee>
<Name>Joe Bloggs</Name>
<EmployeeTypeID>1</EmployeeTypeID>
</Employee>
से बना सकते हैं कुछ इस तरह का उपयोग कर: बहुत कम काम शामिल के साथ
Employee employee = (Employee)new XmlSerializer(typeof(Employee)).Deserialize(XmlReader);
, यह मेरे लिए अनुमति देता है एक जेनेरिक सेवा का उपयोग करें जिसे मैं सभी डेटाबेस ऑब्जेक्ट्स के लिए एक चुनिंदा कमांड, कनेक्शन स्ट्रिंग और ऑब्जेक्ट्स की सरणी को फिर से प्राप्त करके और मैपिंग के लिए किसी भी आवश्यकता के बिना पुनर्प्राप्त करके उपयोग कर सकता हूं। हालांकि मैं enums के साथ unstuck आ गया है।
public enum EmployeeTypeEnum
{
Admin = 1,
Sales = 2
}
तो मेरे वर्ग बन जाता है: के बजाय एक पूर्णांक EmployeeType होने का अब मान एक enum है
class Employee
{
public string Name { get; set;}
public EmployeeTypeEnum EmployeeTypeID { get; set;}
}
मैं एक ही एक्सएमएल का उपयोग करें और बनाने के ग # पहचान कर सकते हैं कि एक्सएमएल में EmployeeTypeID के पूर्णांक मूल्य enum के int मूल्य के साथ मेल खाना चाहिए? वहां अन्य प्रश्न भी समान हैं, लेकिन किसी के पास बहुत ही संतोषजनक उत्तर नहीं है, और कोड में थोक परिवर्तन शामिल हैं। मैं एक बेहतर समाधान की उम्मीद कर रहा हूं ...
एक संभावित अलग नोट (और कुछ प्रतिक्रियाओं की प्रत्याशा में थोड़ा) के रूप में, इस अभ्यास के लिए एनम्स का उपयोग सबसे अच्छा से बचा है? क्या मुझे कुंजी-मूल्य जोड़े का उपयोग करना चाहिए? यदि परिवर्तन होने की संभावना है तो मैं हमेशा कुंजी-मूल्य जोड़े (या समान) का उपयोग करता हूं, लेकिन इस मामले में कर्मचारी टाइप तय किया गया है और कभी नहीं बदलेगा।
+1 - उन प्रश्नों में से एक जो मैं आया हूं, मैं अधिक उपयोग नहीं कर सकता लेकिन उत्तर देखने के लिए तत्पर हूं। – SkonJeet
मदद http://stackoverflow.com/questions/506368/how-do-i-serialize-an-enum-value-as-an-int करता है? – Bridge
या http://stackoverflow.com/questions/4250656/deserializing-enums? – kerrubin