Piszę pakiet dostosowywania dla Visual Studio 2010 (vsix).Wybrany projekt z Solution Explorer
Co należy zrobić, to dodać przycisk menu kontekstowego do węzłów projektu w Eksploratorze rozwiązań.
Udało mi się uzyskać menu kontekstowe, które pojawi się po kliknięciu prawym przyciskiem myszy węzła projektu, ale moim następnym wyzwaniem jest uzyskanie odwołania do klikniętego obiektu projektu. Obecnie jestem w stanie uzyskać projekt, przechodząc przez aktywny dokument w IDE za pomocą poniższego kodu.
DTE dte = (DTE)ServiceProvider.GlobalProvider.GetService(typeof(DTE));
Project project = dte.ActiveDocument.ProjectItem.ContainingProject;
Moje pytanie brzmi: jak uzyskać podobne odniesienie do projektu wybranego w eksploratorze rozwiązań?
Jestem tak szczęśliwy, znalazłem to, nie mógł znaleźć się w innym miejscu, jak to zrobić. : D – bio595
Myślę, że brakuje Ci 'Marshal.Release (hierarchyPtr); Marshal.Release (selectionContainerPointer); 'na końcu, aby uniknąć wycieku pamięci. W przeciwnym razie świetnie! – MickyD
To może być oczywiste, ale jako początkujący użytkownik IntPtr warto zauważyć, że przed wywołaniem Marshal można sprawdzić selectionContainerPointer == IntPtr.Zero, aby uniknąć wyjątku wskaźnika pustego. – webjprgm