Okno programu Visual Studio Immediate: jak wyświetlić więcej niż pierwsze 100 elementów


88

Próbuję zobaczyć właściwości obiektu z ponad 300 właściwościami w bezpośrednim oknie programu Visual Studio 2005. Wyświetlanych jest tylko pierwszych 100 elementów, po których następuje ten podpis:

 < More... (The first 100 of 306 items were displayed.) >

Próbuję zobaczyć pozostałe elementy, ale nie mogę tego rozgryźć.

Zdaję sobie sprawę, że mogłem je zobaczyć w oknie strażnika, ale to nie to samo.

Odpowiedzi:


38

Wiem, że to późno. Jeśli jednak dodasz swój obiekt do okna zegarka. Rozwiń właściwości, gdzie wszystkie są wyświetlane. Następnie Ctrl + A i Kopiuj. Następnie możesz wkleić w programie Excel, aby uzyskać uporządkowaną listę właściwości i ich wartości.


Od 5 lat sabotuję siebie, nie robiąc tego.
Secretwep

53

Wiem, że to było prawie lata temu, ale dzisiaj się z tym spotkałem. Czasami lepiej jest zobaczyć listę w bezpośrednim oknie, zamiast patrzeć w okno zegarka. Możesz łatwo zobaczyć więcej wyników niż pierwszych 100, używając:

yourList.Skip(100).ToArray()

Który naprawdę nie zajmuje dużo czasu i działa dobrze - był dla mnie przydatny.

Aktualizacja : Jak wskazano w komentarzach poniżej, ta odpowiedź jest w rzeczywistości błędna i ma zastosowanie TYLKO do kolekcji, a NIE do obiektów z wieloma właściwościami. Zostawiam go tutaj, ponieważ wydaje się, że wiele osób uznało go za przydatne.


Dzięki za dodanie do tematu. Jak się przekonałeś, czasami „stare” pytania mają odpowiedzi na dzisiejsze problemy!
DOK

Nie wiesz, co masz na myśli, mówiąc tutaj „twoja lista”? Czy masz na myśli przedmiot, który próbuję obejrzeć? Jeśli tak, nie działa u mnie w Visual Studio Pro 2013
Kunal

yourList byłby obiektem (kolekcją), który próbujesz wyświetlić, i zwykle byłby typu IList <T> lub IEnumerable <T>. Mam nadzieję, że to pomoże.
Ian Routledge,

2
Wydaje mi się, że to działa, jeśli chcesz wyświetlić pozostałe elementy w kolekcji, ale ta odpowiedź jest bezużyteczna w przypadku właściwości, jak wspomniano w oryginalnych pytaniach. Nie wiem, dlaczego jest to wybrana odpowiedź. Odpowiedź Gene Whitaker poniżej jest znacznie bardziej przydatna IMO.
Simon ML

1
Słuszna uwaga, masz rację, ta odpowiedź jest w rzeczywistości błędna! Dodałem komentarz do aktualizacji - nie krępuj się zmieniać itp.
Ian Routledge,

16

Bezpośrednie okno zostało zaprojektowane jako narzędzie szybkiego podglądu. Jeśli chcesz zobaczyć więcej szczegółów, będziesz musiał wyświetlić je w oknie nadzoru lub oknie szybkiego nadzoru.

Inną opcją jest napisanie dodatku programu Visual Studio, który działa podobnie do okna bezpośredniego, ale ma więcej opcji.


Dzięki. Miałem nadzieję, że właśnie przeoczyłem coś prostego, coś, co nie wymaga tak częstego klikania, coś, co ułatwiłoby przewijanie setek pozycji. Myślę, że zidentyfikowałeś najlepsze alternatywy.
DOK

1
@DOK: Jest teraz lepsza odpowiedź na to pytanie, która może być warta przyjęcia.
Eric J.

@Gabriel Czy to naprawdę zostało zaprojektowane jako narzędzie szybkiego podglądu? Wydaje się, że jest o wiele więcej, chociaż ma i jest przydatny do tego. Wydaje się, że jest wyjątkowy i przydatny do oceny, zarówno proroczej, jak i spekulatywnej. Uważam, że to coś więcej niż maszyna typu „Co Jest”, za pomocą której można oglądać, ale maszyna „Co by było, gdyby” do eksploracji.
G DeMasters

4

Zawsze tworzę metodę rozszerzenia, aby eksportować obiekty do XML podczas debugowania w ten sposób. Jest to bardzo przydatne do rozwiązywania problemów z danymi obiektu. Oto czego używam:

public static void SerializeToXML(this object entity)
{
    System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(entity.GetType());

    System.IO.StreamWriter file = new System.IO.StreamWriter(string.Format(@"{0}\{1}.xml", Directory.GetCurrentDirectory(), entity.GetType().Name));
    writer.Serialize(file, entity);
    file.Close();
}

Nie jest to w 100% pełny dowód, ale przez większość czasu jest doskonały. Utworzy plik xml w katalogu aplikacji z nazwą obiektu jako nazwą pliku. W bezpośrednim oknie możesz po prostu wpisać nazwę obiektu, a następnie .SerializeToXML ().

więc: myList.SerializeToXML ()

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.