2010-09-21 9 views
5

मेरे पास एक WPF एप्लिकेशन द्वारा फेंक दिया गया अपवाद है। संदेश है:"+ <> c__DisplayClassX" प्रकार प्रत्यय क्या है जहां एक्स एक संख्या है?

Type 'MyNamespacesPath.AType+<>c__DisplayClass5' in Assembly... is not marked as serializable 

समस्या यह है कि प्रकार को क्रमबद्ध नहीं किया जा सकता है। लेकिन वह प्रकार स्वत: उत्पन्न होता है, शायद एक अज्ञात विधि या अभिव्यक्ति वृक्ष। किसी को भी इस प्रकार के प्रकार की सटीक उत्पत्ति पता है कि बग कहां मिलना है?

उत्तर

3

जब आप एक अनाम विधि लिखते हैं (delegate वाक्यविन्यास या लैम्ब्डा अभिव्यक्ति का उपयोग करके) उस प्रकार के नाम के प्रकार उत्पन्न होते हैं जो स्थानीय चर को कैप्चर करते हैं।

  • गुमनाम प्रकार <>f__AnonymousType0<<a>j__TPar, <b>j__TPar> (new { a = 1, b = "2" } द्वारा उत्पन्न) जैसे नाम है: इन प्रकार की भूमिका पर कब्जा कर लिया चरों के मान

    ध्यान दें कि उत्पन्न प्रकार के अन्य प्रकार के अलग-अलग नाम है धारण करने के लिए है।

  • iterators भी <ZipIterator>d__0<TFirst, TSecond, TResult> की तरह नए प्रकार उत्पन्न

जहाँ तक मुझे पता के रूप में (कोणीय कोष्ठक के बीच इटरेटर विधि का नाम नोटिस), वहाँ उत्पन्न प्रकार के नामकरण के लिए कोई दस्तावेज नियम है, तो आप shouldn अपने कोड में इन अवलोकनों पर भरोसा नहीं करते हैं। मैं सिर्फ पूर्णता के लिए उनका जिक्र कर रहा हूं।

+0

यही है! धन्यवाद। –

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