В настоящее время я разрабатываю библиотеку регистрации приложений, используя встроенный TraceListener. Эта библиотека будет использоваться во многих проектах и должна предлагать простой интерфейс, где мне нужно только заботиться о том, что ЧТО будет записано в файл журнала, но не КАК.Как определить метод вызова и имя класса?
Используя пространство имен отражения, я могу выяснить, какое приложение в настоящее время называется функцией журнала (получение имени сборки выполнения), но я также хочу указать имя функции и класса, которые вызвали функцию ведения журнала.
Скажем, у меня есть:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
Когда я звоню из другого проекта (класс: TestClass, метод: TestMethod)
Tracer.LogInfo("log this!")
я ожидаю увидеть в журнале:
TestClass, TestMethod, log this!
Но вместо этого я получил
TracerClass, LogInfo, log this!
Как получить родительский метод и имя класса?
[Это может помочь вам безмерно] (http://msdn.microsoft.com/en-us/library/hh534540.aspx), если вы используете новейшие C# и VS 2012. –
@ Trustme-I'maDoctor великолепно! Не знал об этом. Не могли бы вы ответить на этот вопрос вместо комментария, чтобы я мог проголосовать и отметить его как закрытого? Большое спасибо. – Neurodefekt
@Neurodefekt Нет проблем, все готово. Рад, что смог помочь. :) –