2010-05-12 5 views
9

Często chcę wywołać klasę systemu w widoku źródłowym, dzięki czemu mogę przeglądać właściwości i metody ujawnione przez klasę. Poniżej znajduje się zrzut ekranu, co mam na myśli:Visual Studio - prosty sposób na wprowadzenie definicji typu jako kodu źródłowego

Srting from metadata http://img443.imageshack.us/img443/940/stringfrommetadata.png

Zazwyczaj to zrobić wybierając nazwę klasy i naciśnięcie klawisza F12 (lub kliknij prawym przyciskiem myszy> Przejdź do definicji). Jednakże, jeśli nie mam go nigdzie gotowy, mam go wypisać, a następnie Przejdź do definicji. W większości przypadków muszę usunąć to, co napisałem później.

Czy istnieje sposób, aby wyświetlić ten widok bez konieczności wpisywania nazwy klasy? Okno dialogowe VS2010 Navigate To nie obsługuje tego.

EDYCJA: Kiedy opublikowałem pytanie, nie używałem żadnych wtyczek Visual Studio. Teraz, gdy zdałem sobie sprawę, że mam pełną licencję CodeRush (dzięki promocji StackOverflow dla użytkowników z 10K rep) przyjmuję odpowiedzi, które używają CodeRush lub Refactor !.

EDYCJA: Na tym etapie nie mam nigdzie żadnego pomysłu, aby odpowiedzieć na to pytanie. Mam zamiar zostawić to otwarte i pozwolić, by nagroda sama się nagrodziła Rory, gdy wyjaśnił, co się dzieje najlepiej. W międzyczasie (pozwalając na harmonogram) zbadam to z DXCore, ponieważ uważam, że powinno to być możliwe.

Odpowiedz

2

Nie ma sposobu, aby to zrobić w Visual Studio 2010. Można to jednak zrobić w ReSharper za pomocą menu "Nawiguj do". Sugeruję wypróbowanie od nich 30-dniowej wersji próbnej, a jeśli naprawdę tego potrzebujesz, to kup ją.

3

Nie wiedziałem o tej nowej funkcji "Nawiguj do", ale używałam do tego celu Reflector. Wersja pro oferuje trochę integracji z Visual Studio (kliknięcie prawym przyciskiem myszy i wybranie "Open In .NET Reflector"). Otworzy to okno reflektora i nie wyświetli kodu w samym VS. Możesz watch the demo, który pokazuje tę funkcję i kilka innych.
To nie jest najlepsza odpowiedź, jakiej bym się spodziewał, ale jest dobrym rozwiązaniem.

7

Widok, na który patrzysz, wydaje się być zbudowany przez analizę IL-a struktury. Nie znając typu, na który zamierzamy patrzeć, nie można dokonać żadnej dekonstrukcji. Dlatego uważam, że prawdopodobnie nie znajdziesz dokładnie tego, co powiedziałeś, czego szukasz.

Pozwól mi jednak zaproponować kilka alternatyw.

Nota prawna: Pracuję dla DevExpress jako ewangelista społeczności CodeRush.

Przeglądarka Object (Ctrl + Alt + J) Ekran ten będzie ładować bez próbując pokazać żadnego konkretnego typu, dlatego będzie się do Ciebie, aby znaleźć danego rodzaju. Jednak wszystkie typy są dostępne i zapewniona jest pełna funkcjonalność wyszukiwania. raz typ, którego szukasz lub zostanie znaleziony, wszyscy członkowie są wymienieni i dostępni.

Aktualizacja: Jeśli używasz (Ctrl + K, Ctrl + R) skrót, aby uruchomić przeglądarkę obiektu, a następnie uruchomi koncentruje się na polu wyszukiwania. Jest to nieocenione.

Istnieje wiele funkcji CodeRush, które mogą okazać się przydatne podczas próby zlokalizowania kodu.

TabToNextReference (Tab) Podczas karetki jest usytuowana wewnątrz typu, uderzać klawisza tab i następnego odniesienie do tego typu zostanie umieszczony. More Details

Referencje ToolWindow (Przesunięcie + F12) Po włączeniu odniesień ToolWindow pokaże żadnych odniesień do aktualnej typu lub członka. To okno narzędziowe może być również używane do nawigacji wspomnianych odniesień. Okno ToolWindow referencji może być używane zarówno na żądanie, jak i na żywo. pozwala to na aktualizację okna podczas nawigacji po kodzie (za pomocą myszy lub klawiatury) i zlokalizowanie wszystkich odniesień do dowolnego symbolu, na który trafia daszek.

QuickNav (Ctrl + Przesunięcie + Q): Funkcja ta jest najbliżej w stylu do NavigateTo cechą VS2010 jest. QuickNav zlokalizuje symbole pasujące do wpisanego w polu filtru. Ta funkcja obsługuje także wyszukiwanie wielbłądów. More details

QuickNav jest również much more configurable niż to VS odpowiednik

Wreszcie

Należy również pamiętać, że CodeRush jest budować na DXCore, ramy, która pozwala użytkownikom na tworzenie własnych wtyczek do użytku obok siebie nawzajem i CodeRush.

Ta struktura była wielokrotnie dodawana jako leveraged by the community w celu dodania dodatkowej funkcjonalności. Więc nawet jeśli nie widzisz niczego zupełnie do własnych potrzeb, należy rozważyć sugeruje coś dla społeczności by way of the forums lub nawet bezpośrednio do mnie RoryB na DevExpress Dot Com

Jestem pewien, że istnieje coś, co możemy zrobić, aby pomóc out :)

+0

Dziękuję Rory za świetny post. Sądzę jednak, że powinienem móc znaleźć to, czego szukam, ponieważ jedyne, co chcę, to funkcja "Go To Definition" (która, jak zakładam, jest eksponowana przez VS Extensibility), dostarczając jej pełną nazwę typu. Pomyśl o QuickNav oknie dialogowym, które będzie indeksować wszystkie odniesienia złożeń i wykonuje przejście do definicji danego typu. –

+0

Przepraszam Igorze, wygląda na to, że źle zrozumiałem/źle odczytałem pierwotną prośbę. Wyglądało na to, że szukasz informacji o typie, ale nie podasz tego typu. Teraz, gdy ponownie przeczytałem, wydaje się, że z przyjemnością dostarczasz tego typu, ale wolisz go później nie usuwać z edytora. –

0

Wiele dodatków umożliwia przeglądanie obiektów (choć zwykle w widoku drzewa przeglądarki obiektów, a nie w formie pliku nagłówkowego - wierzę, że Resharper, CodeRush i Visual Assist X mają odmiany na ten temat).

Jednak jeden dodatek do rozważenia (ponieważ jest bezpłatny) to VS Productivity Power Tools. Dodaje okno Rozwiązanie Navigator, który daje pogląd na rozwiązania, tak jak Solution Explorer, ale (wśród innych akcesoriów):

  • mogą wyszukiwać & filtrować pliki na liście, na przykład pokaż tylko te pliki o nazwie Test.
  • może "rozwinąć" dowolny wpis pliku, aby wyświetlić typy i elementy w nim zawarte.
+0

Niestety, program Solution Navigator nie odnosi się do typów, których nie ma w rozwiązaniu (np. "System.String"). –

+0

Tak. Chciałbym zobaczyć "widok metadanych" (jak podano w pytaniu) dla każdej klasy, o którą poproszę o pomoc. Być może jest to programista C++, który usiłuje się wycofać, ale uważam, że "plik nagłówkowy" jest najbardziej użytecznym i czytelnym podsumowaniem klasy - o wiele łatwiejszym do grokowania niż przeglądarkami obiektowymi i dokumentacją MSDN, ponieważ jest w dokładnej formie że czytamy cały dzień każdego dnia. –

+0

Myślę, że jesteśmy w tej samej łodzi. Teoretycznie nie zatrzymuje się ta funkcja. Domyślam się, że mam opcje włamać się do rozszerzalności VS lub zrobić mniej StackOverflow, który jest głównym zastosowaniem tej funkcji. –

Powiązane problemy