2010-07-07 10 views

Odpowiedz

12

Można użyć okna bezpośredniego Visual Studio Natychmiastowe okno jako szybki sposób uzyskania kwalifikowanej nazwy zespołu dla jednego z projektów rozwiązania.

IIRC, te kroki powinny działać:

  1. Otwórz plik klasy zawartego w projekcie, dla którego chcesz uzyskać nazwę zespołu;
  2. Ustaw ten projekt jako projekt początkowy rozwiązania;
  3. Otwórz Natychmiastowe Okno, domyślny skrót C# środowisko jest CTRL + D + I;
  4. W okienku bezpośrednim wpisz typeof(ClassNameOfStep1).AssemblyQualifiedName i naciśnij Wpisz.

Natychmiastowe Okno zależy od czasu projektowania Expression Ocena co z kolei zależy od Visual Studio Hosting Procesu więc trzeba mieć to włączone, który już jest domyślnie.

Wykonałem także kilka szybkich testów, a nazwa klasy była wystarczająca we wszystkich przypadkach, z wyjątkiem sytuacji, gdy wypróbowałem ją na VS 2008, co wymagało ode mnie podania FullName typu.Jeśli więc Name powoduje błąd, użyj kwalifikatora Name w przestrzeni nazw.

+1

Próbowałem, ale dostałem błąd "Typ lub nazwa przestrzeni nazw" MyClass "nie jest poprawna w tym zakresie" –

+2

@Nam Gi VU, zamiast 'MyClass' spróbuj użyć' MyNamespace.MyClass'. –

+0

@ Angelo: Umieszczam pełną przestrzeń nazw klasy, ale też nie działa. Mam "CCC" nie istnieje w przestrzeni nazw "A.BB", kiedy przekazuję typeof (A.BB.CCC.DDDD) .AssemblyQualifiedName :) –

4

Powinny one dać to, czego jesteś po:

var assemblyName = typeof(ClassNameGoesHere).AssemblyQualifiedName; 
var namespaceOfClass = typeof(ClassNameGoesHere).Namespace; 

widzę właśnie dodaje notatkę do Twojego pytania dotyczące „podczas przeglądania klas w Solution Explorer”, prosta odpowiedź jest taka, że o ile mi wiadomo, nie można, bo to nie to, co Explorer rozwiązaniem jest (to nie do przeglądania plików w roztworze, a nie to, co zawarte w nich), a także z powodu:

  1. Jeden plik może zawierać wiele klasy
  2. Wszystkie pliki w jednym projekcie będą generalnie zawsze kompilować w dół do pojedynczego zestawu, co spowoduje, że będzie on nadmiarowy pod nazwą i będzie wyświetlał tę nazwę dla każdego pliku o numerze .

Możesz chcieć zobaczyć, czy "Widok klasy" daje ci to, co chcesz, ale podejrzewam, że nie.

+0

Hi Roba, szukam rozwiązania bez kodowania. Mimo wszystko dziekuję. –

+0

@Nam Gi VU, dodałem aktualizację, aby uwzględnić Twój dodatek do pytania dotyczącego Eksploratora rozwiązań. – Rob

+0

Rozumiem. Próbowałem już w widoku klasy, ale bez pomocy. Zaktualizowałem, aby dodać sprawę: podczas edycji kodów zajęć. –

-3

Potrzebujesz Object Browser. Naciśnij Ctrl + Alt + J.

Tam zobaczysz wszystkie typy meta informacji.

+0

Czy możesz wyjaśnić więcej na temat jakich informacji meta powinienem szukać? –

2

Można użyć F # Interative, wystarczy otworzyć okno (View -> Pozostałe systemu Windows -> F # Interactive) i spróbuj wykonać następujące czynności:

> typedefof<System.Uri>.Assembly.FullName;; 
    val it : string = 
     "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 

Istnieje kilka zespołów przywoływane automatycznie jak System. Jeśli chcesz uzyskać nazwę z innego zespołu, musisz najpierw dodać odwołanie (na przykład model usługi).

> #r "System.ServiceModel.dll";; 

--> Referenced 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.ServiceModel.dll' 

> typedefof<System.ServiceModel.ICommunicationObject>.Assembly.FullName;; 
val it : string = 
    "System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 

F # Interative jest częścią programu Visual Studio 2010.

Powiązane problemy