मैं अपना ऐप (विंडोज 10 के लिए) को .NET मूल के अंतर्गत काम करने की कोशिश कर रहा हूं।.net-native enum.GetValues परेशानी
मैं निम्नलिखित समस्या से अटक गया: Enum.GetValues
मेटाडाटा गायब होने के साथ रनटाइम में विफल रहता है। मैं इस समस्या के लिए परीक्षण मामले को सरल बनाने में कामयाब रहा (वास्तविक जीवन में मेरा कोड अलग दिखता है)। पोर्टेबल पुस्तकालय में मेरे पास है:
public enum enumValues
{
A1,
B1,
C1,
}
public class fff
{
public static object GetClass2Value()
{
return enumValues.B1;
}
}
मैं निम्नलिखित कोड फोन मेरी यूनिवर्सल विंडोज ऐप्लिकेशन में:
Array aaa = Enum.GetValues(fff.GetClass2Value().GetType());
मैं निम्न अपवाद प्राप्त करते हैं:
अतिरिक्त जानकारी: 'enumlibportable.enumValues [] 'मेटाडेटा गायब है।
समस्या यह है कि मुझे नहीं पता कि Default.rd.xml में क्या जोड़ना है। मैंने माइक्रोसॉफ्ट टूल http://go.microsoft.com/fwlink/?LinkID=392859 का उपयोग करके अलग-अलग rd स्ट्रिंग्स (एनम सबटाइप, एनमवेल्यूज क्लास, एनमवेल्यूज [] इत्यादि) जोड़ने की कोशिश की है, लेकिन कोई भाग्य नहीं था।
अद्यतन: मुझे पता है कि निम्नलिखित कोड मेरे testcase Enum.GetValues(typeof(enumValue))
के लिए काम करेंगे, लेकिन मैं अपने वास्तविक परियोजना में उपयोग नहीं कर सकते, क्योंकि मैं अपने वास्तविक परियोजना में सही enum प्रकार पता नहीं है।
मैं वास्तविक कोड मान एक subclassing/इंटरफेस मामला है? क्या आप कृपया उस पर विस्तार से बता सकते हैं? – Nyerguds
ठीक है, मेरी असली परियोजना को समझाने में बहुत लंबा समय है, इसलिए मैं समस्या का कारण ढूंढने और नमूना तैयार करने में काफी समय बिताता हूं। मैंने अच्छी तरह से मेरी समस्या का वर्णन किया। समस्या यह है कि ऑप्टिमाइज़ेशन enum मेटाडेटा को हटा देता है क्योंकि इसे स्पष्ट रूप से एप्लिकेशन में संदर्भित नहीं किया जाता है। मुझे संकलक को यह मेटाडेटा हटाने के लिए बताना नहीं है। –
क्या आप वापसी प्रकार जेनेरिक नहीं बना सकते? – Herdo