Powiedzmy, że masz MethodInfo lub inną podklasę MemberInfo dla tej sprawy, w C#. Czy można odzyskać nazwę pliku, w którym została zadeklarowana i ewentualnie numery wierszy, w których rozpoczyna się deklaracja? Ta informacja musi istnieć gdzieś w metadanych trybu debugowania, ponieważ utworzenie instancji StackTrace da ci tę informację. Czy powinienem szukać w System.Diagnostics zamiast System.Reflection?Czy można odzyskać informacje o pliku poprzez odbicie w C#?
6
A
Odpowiedz
4
Zazwyczaj informacje o numerach linii pochodzą z plików symboli (lub "bazy danych programów" .pdb). Narzędzia takie jak FxCop używają pliku symbolu, aby połączyć IL z powrotem do kodu źródłowego. Przeszukałem dla Ciebie następujące API: http://msdn.microsoft.com/en-us/library/system.diagnostics.symbolstore.aspx
1
Powinieneś używać klas Symbol.Diagnostics do pobierania informacji z plików .pdb. Oto dobry blog na nim
Coś jak to może działać:
using System;
using System.Diagnostics;
class Foo
{
static void Main()
{
SmallFunc();
}
static void SmallFunc()
{
PrintStack();
}
static void PrintStack()
{
StackTrace st = new StackTrace(true); // true means get line numbers.
foreach(StackFrame f in st.GetFrames()) {
Console.Write(f);
}
}
}
Powiązane problemy
- 1. Czy można ustawić prywatną własność poprzez odbicie?
- 2. Czy anonimowe typy w języku C# są dostępne poprzez odbicie?
- 3. Używanie C# z OpenOffice poprzez odbicie
- 4. Jak odzyskać informacje o karcie graficznej w Javie?
- 5. Pobierz bieżącą MethodBase poprzez odbicie
- 6. Informacje o rozszerzeniu pliku .MI?
- 7. Zmiana „Wydawca” Informacje o „.exe” pliku
- 8. Czy Objective-C ma odbicie?
- 9. C# Ustawienie obiektu DateTime wartości właściwości poprzez odbicie
- 10. Jak uzyskać skojarzenia activerecord poprzez odbicie
- 11. Jak odzyskać przydatne informacje systemowe w java?
- 12. Jak odzyskać informacje o czasopismach z ISI Web of Knowledge?
- 13. Jak odzyskać informacje o podpisie cyfrowym z pliku PDF z PHP?
- 14. Korzystanie odbicie odzyskać tablicę prymitywów nieznanego typu
- 15. Jak odzyskać informacje Java dostawcy
- 16. Jak mogę uzyskać informacje o systemie/sprzęcie poprzez Javę?
- 17. Ostrzeżenie o ograniczeniach automatycznych "Będzie próbować odzyskać poprzez złamanie ograniczenia"
- 18. Java Singleton - zapobiec wielokrotnemu tworzeniu poprzez odbicie
- 19. C#: uzyskać informacje o komputerze w domenie
- 20. NET Uzyskaj własności prywatnej poprzez odbicie
- 21. Jak zmienić zachowanie metody poprzez odbicie?
- 22. Dodawanie nowej metody do klasy poprzez odbicie
- 23. Czy można odzyskać wyjątek EOutOfMemory?
- 24. Kotlin. Jak sprawdzić, czy pole jest neutralne poprzez odbicie?
- 25. Uzyskaj wartość zmiennej String poprzez odbicie
- 26. Czy istnieje sposób na uzyskanie aliasu typu poprzez odbicie?
- 27. Jak określić, czy pole ma "nowy" modyfikator poprzez odbicie?
- 28. Jak odzyskać informacje nagłówka HTTP z metody usługi odzyskiwania C#
- 29. Jak odzyskać wszystkie możliwe informacje o koncie LinkedIn? (API używa C#)
- 30. C# "jest" operator - czy to odbicie?