एमएसडीएन पर कई स्थानों (जैसे "Creating Windows Runtime Components for JavaScript, in C# and Visual Basic") में, मैंने यह निर्दिष्ट किया है कि, यदि आप .NET में एक कक्षा लिखते हैं जिसे आप जावास्क्रिप्ट से उपयोग करना चाहते हैं, तो आपको इसे एक सीलबंद क्लास बनाना होगा।WinRT प्रकारों को क्यों सील करना है?
यह एक मनमाना प्रतिबंध की तरह लगता है। जावास्क्रिप्ट केवल सीलबंद कक्षाओं के साथ क्यों काम कर सकता है?
क्योंकि COMRT के शीर्ष पर WinRT बनाया गया है और COM विरासत का समर्थन नहीं करता है। * मुहरबंद * कीवर्ड यह सुनिश्चित करता है कि यह किसी भी व्यक्ति को क्रिस्टल स्पष्ट है जो कोड को देखता है कि इस तरह की कक्षा विरासत के माध्यम से एक्स्टेंसिबल नहीं है। –
@ हंस वास्तव में WinRT द्वारा समर्थित विरासत का कुछ रूप है - उदा। आप .NET में 'FrameworkElement' (जो स्वयं एक WinRT क्लास) से प्राप्त कर सकते हैं। और आपको सी ++/सीएक्स में परिभाषित कक्षाओं को मुहरबंद के रूप में चिह्नित करने की आवश्यकता नहीं है, और उनसे भी उत्तराधिकारी हो सकता है। तो यह केवल .NET में WinRT घटकों को स्वत: धोने के लिए एक सीमा प्रतीत होता है, न कि WinRT की एक (COM विरासत) सीमा। –
@ हंस: COM विरासत का समर्थन करता है। हालांकि हम Winrt इंटरफेस में इंटरफ़ेस विरासत की अनुमति नहीं देते हैं। –