2017-09-24 16 views
5

मेरा विजुअल स्टूडियो एक्सटेंशन IVsSolutionEvents.OnAfterOpenSolution() के माध्यम से समाधान के उद्घाटन के लिए जवाब देता है।एक विजुअल स्टूडियो एक्सटेंशन में, "ओपन फ़ोल्डर" के साथ-साथ "ओपन सॉल्यूशन" का जवाब कैसे दें?

विजुअल स्टूडियो 2017 ने "ओपन सॉल्यूशन" के विकल्प के रूप में "Open Folder" पेश किया, लेकिन जब आप कोई फ़ोल्डर खोलते हैं, तो IVsSolutionEvents.OnAfterOpenSolution() आग नहीं होता है। (IVsSolutionEvents में अन्य कार्यक्रमों में से कोई भी नहीं, न ही IVsSolutionLoadEvents में से कोई भी घटना।)

मेरा एक्सटेंशन कैसे पता चलेगा कि एक समाधान के विपरीत एक फ़ोल्डर खोला गया है?

+0

क्या आप IVsSolutionEvents7 :: OnAfterOpenFolder की तलाश में हैं? https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017 –

+0

@ सिमन मॉरीयर: यह सही दिखता है, लेकिन जब मैं इसे कार्यान्वित करता हूं और अपना कार्यान्वयन पास करता हूं 'IVsSolution.AdviseSolutionEvents()' के लिए ऑब्जेक्ट, 'IVsSolutionEvents7' घटनाओं में से कोई भी आग नहीं। ऑब्जेक्ट 'IVsSolutionEvents' को भी लागू करता है, और वे घटनाएं आग लगती हैं। कोई विचार...? – RichieHindle

+0

नहीं, मुझे लगता है कि यह वास्तव में एकमात्र तरीका है। कुछ वीएस डीएल उस इंटरफेस को उसी तरह कार्यान्वित करते हैं (उदाहरण के लिए माइक्रोसॉफ्ट। विज़ुअल स्टूडियो .hell.UI.Internal, क्लास माइक्रोसॉफ्ट। विज़ुअल स्टूडियो.प्लाफ्टरयूआई। स्टार्टपेजटूलविंडोपेन)। आप ICustomQueryInterface को अस्थायी रूप से यह जांचने के लिए प्रयास कर सकते हैं कि यह उस इंटरफ़ेस का भी अनुरोध कर रहा है या नहीं। –

उत्तर

6

आप IVsSolutionEvents7.OnAfterOpenFolder Method कि दृश्य स्टूडियो 2017.

सूचना देता ग्राहकों सुन उस फ़ोल्डर खोल दिया गया है के लिए जोड़ दिया गया है का उपयोग करने के लिए है।

public void OnAfterOpenFolder (string folderPath); 

चूंकि यह एक मूल COM इंटरफेस है, आप भी सुनिश्चित करने के लिए लागू करने वर्ग COM दिखाई (ComVisible विशेषता है कि आप विधानसभा पर सेट कर सकते हैं वर्ग पर, के माध्यम से, एक आधार वर्ग पर है , आदि।)।

+0

अद्भुत - बहुत धन्यवाद! मेरे पास यहां एक फॉलोअप प्रश्न है: https://stackoverflow.com/questions/46432488/ जिस पर मैं आपके इनपुट का बहुत अधिक महत्व रखूंगा। – RichieHindle

+0

@ सिमोन मॉरीयर क्या आप जानते हैं कि समाधान एक्सप्लोरर में 'समाधान दृश्य' और 'फ़ोल्डर दृश्य' पर स्विच को कैसे ट्रैक किया जाए? हो सकता है कि विधियों के साथ एक इंटरफ़ेस हो? –

+0

@ नाइटवाल्कर - आपको एक और सवाल पूछना चाहिए –

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