2011-03-22 21 views
11

कोड के शीर्ष पर सिल्वरलाइट/डब्ल्यूपीएफ xaml में आपके पास अपना नामस्थान/आयात प्रकार घोषणाएं हैं। मैं आसानी से समझ सकता हूं कि ये घोषणाएं असेंबली को कैसे इंगित कर सकती हैं ताकि प्रकार आदि को लोड किया जा सके। जो मैं समझ नहीं पा रहा हूं (और जो मैंने वास्तव में अभी तक नहीं सोचा है) यह है कि जब वे यूआरएल को इंगित करते हैं तो ये नेमस्पेस कैसे काम करते हैं, उदाहरण के लिएएक्सएएमएल नेमस्पेस क्यों हैं जो यूआरएल हैं?

http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit

इस URL को देखते हुए मुझे एक त्रुटि देता है तो मेरे कुछ नहीं बताता है।

उत्तर

18

अपने संदर्भित विधानसभा के कोड अपने कोड नामस्थान करने के लिए एक उरी नक्शे कि में an attribute you can use नहीं है:

[XmlnsDefinitionAttribute("http://yournamespace/", "Your.Assembly.Namespace")] 

आप इन attribut के कई शामिल कर सकते हैं es, आमतौर पर आपके AssemblyInfo.cs में, Xaml में एक एकल उरी नेमस्पेस द्वारा एकाधिक कोड नामस्थानों को संदर्भित करने की इजाजत दी गई है।

इससे आपकी नेमस्पेस घोषणाएं अधिक कॉम्पैक्ट बनाती हैं (क्योंकि आप असेंबली नाम छोड़ सकते हैं)। यह आपको मार्कअप को तोड़ने के बिना संदर्भित असेंबली में नेमस्पेस को पुनर्गठित करने में कुछ लचीलापन भी देता है।

संपादित करें:

[assembly: 
    XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation" 
        , "System.Windows.Ink") ] 

यह कैसे उरी आयात कोड नामस्थान को मैप किया जाता है: उदाहरण के लिए, यदि आप PresentationCore विधानसभा में परावर्तक बात, आप गुण ऐसे विधानसभा स्तर पर इस रूप में देख सकते हैं ।

+0

प्रोजेक्ट गुणों में दिखाए गए मेरे असेंबलीनाम 'कंपनी। कॉम्पोनेंट' और उस असेंबली में नेमस्पेस है जिसे मैं संदर्भित करने की कोशिश कर रहा हूं 'कंपनी। कॉम्पोनेंट.विहाविर्स' लेकिन '[असेंबली: एक्सएमएलएनएस परिभाषा (" http://Behaviors.Component.Company "," Company.Component.Behaviors ")] 'वर्तमान असेंबली में एक xaml फ़ाइल द्वारा संदर्भित अभी भी विफल होने में विफल रहता है ताकि बिल्ड में xaml संकलन चरण विफल हो जाए। वैकल्पिक 'Assembly नाम = "कंपनी। कॉम्पोनेंट" भाग को असेंबली विशेषता में जोड़ने का प्रयास किया ('exe' के साथ और बिना) – Maslow

1

जहां तक ​​मुझे पता है कि वे केवल सम्मेलन से बाहर हैं, कोई भी अद्वितीय पहचानकर्ता करेगा।

आप HTML doctypes जाँच अगर वे बिल्कुल वैसा ही कर रहे हैं, वास्तव में लोड नहीं :) उदाहरण के लिए के रूप में: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd या http://www.w3.org/TR/html4/strict.dtd

यह कोई मतलब नहीं है यही कारण है कि इन URL पर कुछ भी नहीं है, हालांकि, के लिए अच्छा होगा है कुछ वास्तविक संदर्भ है ...

+1

वे एक्सएमएल नेमस्पेस नाम होने चाहिए - जो उरी होना चाहिए। यरी के लिए वास्तव में किसी भी सामग्री की मेजबानी करने की आवश्यकता नहीं है। चूंकि xaml संदर्भों के लिए यूरी वास्तव में स्थानीय कोड असेंबली के लिए मानचित्रण करते हैं, वास्तव में वहां कुछ भी सार्थक नहीं है जिसे आप वहां होस्ट कर सकते हैं। –

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