Mamy klasę "log", która używa Relection.MethodBase do wysyłania aktualnych informacji o klasie do dziennika.Używanie klasy StackTrace w środowisku produkcyjnym do uzyskania informacji o metodach wywoływania
Rzeczy z reflect.MethodBase dzieje się w samej klasie.
Chciałbym jednak przenieść te rzeczy do pojedynczej zewnętrznej klasy "log" typu singleton.
W tym scenariuszu klasa dziennika zewnętrznego musi uzyskać informacje o wezwaniu, a nie bieżące informacje o metodzie. Do tego celu używam stacktrace, którego nie ma w przestrzeni nazw Reflection.
Czy mogę zagwarantować, że "ta" konkretna informacja (metoda wywołania) będzie dostępna w środowisku produkcyjnym?
var stackTrace = new StackTrace();
return LogManager.GetLogger(stackTrace.GetFrame(1).GetMethod().DeclaringType);
Pozdrawiam!
uzgodnione. Jakieś lepsze rekomendacje? Idealnie nie chciałbym umieszczać refleksji w innych klasach, chciałbym żeby logger obsługiwał to wewnętrznie ... jakieś pomysły? – andy
Kiedy pisałeś, właśnie zredagowałem swoją odpowiedź, aby wskazać metodę, której użyłem. – Josh