2010-04-28 29 views
25

हमने बनाम 2008 से बनाम 2010 तक स्विच किया है, और हमारी परियोजनाएं संकलित और किसी भी समस्या के बिना अच्छी तरह से चलती हैं। हालांकि, xaml डिजाइनर में कुछ त्रुटियां हैं। त्रुटियों में से एक यह उम्मीद है कि कोई समाधान प्रदान कर सकता है।वीएस -2010 कस्टम मार्कअप एक्सटेंशन

हमारे पास एक कस्टम मार्कअप एक्सटेंशन है, और हम इसे कुछ संसाधन प्राप्त करने के लिए xaml में उपयोग करते हैं। कुछ इस तरह:

<Button Style="{l:GetResource Key=MyButtonStyle}" />

मैं जानता हूँ कि हम StaticResource या DynamicResource उपयोग कर सकते हैं। हालांकि हमारे पास कस्टम मार्कअपक्स्टेंशन का उपयोग करने के हमारे कारण हैं।

डिजाइनर से त्रुटि संदेश है:

'GetResourceExtension' Setter.Value के लिए मान्य नहीं है। केवल समर्थित मार्कअप एक्सटेंशन प्रकार DynamicResourceExtension और BindingBase या व्युत्पन्न प्रकार हैं।

मेरा सवाल यह है कि कोड बनाम 2008 में ठीक काम करता है, और 2010 में भी ठीक चलता है, 2010 डिजाइनर कैसे काम करता है?

+1

क्या आपने ब्लेंड में यह कोशिश की है? मुझे आश्चर्य है कि क्या साइडर (वीएस20120 एक्सएएमएल डिजाइनर) यह कस्टम मार्कअप एक्सटेंशन से निपटने में सक्षम नहीं है। यह मुझे आश्चर्य नहीं करेगा क्योंकि यह काफी संवेदनशील है, हालांकि यह एक मूलभूत है। क्या यह त्रुटि डिज़ाइनर को क्रैश करती है या यह काम करती है और इसे अभी एक त्रुटि के रूप में दिखाया गया है? –

उत्तर

1

मैंने कुछ मार्कअप एक्सटेंशन लिखे हैं और हालांकि कोड चलाता है, मुझे Xaml त्रुटि मिलती है जिसे आप हर समय प्राप्त करते हैं। मान लें कि आपके पास वैध कोड है, मैंने पाया कि त्रुटियों से छुटकारा पाने का एकमात्र तरीका पुनर्निर्माण विकल्प के माध्यम से था और फिर ऐप चला रहा था।

बेशक समस्या यह है कि यदि आप इसे फिर से बदलते हैं या इसे स्थानांतरित करते हैं तो त्रुटियां वापस आती हैं। मेरी धारणा यह है कि स्थिर संकलन पूरी तरह से हल नहीं कर सकता है जो भी आपका मार्कअप कर रहा है और इस पर आधारित त्रुटि फेंक रहा है।

मेरे मामले में मैं एक विधि बाइंडर लिख रहा था और क्योंकि ऑब्जेक्ट रनटाइम तक शून्य था, मैं नए ऑब्जेक्ट() का उपयोग करने के लिए समाप्त हुआ; और रनटाइम पर इसे बाहर swapping। यह हैकी है लेकिन संकलन त्रुटि मुझे पागल कर रही थी।

xaml पार्सर 2012 में बेहतर प्रतीत होता है लेकिन फिर भी अजीब त्रुटियां हैं।