CallerMemberName、CallerFilePath、CallerLineNumber特性
CallerMemberName:调用方法的名称
CallerFilePath:调用方法的所在的类文件绝对地址
CallerLineNumber:调用方法所在行号
可以用来记录日志,能够获取记录日志所在的行号和方法及调用文件
public class LogHelp
{
public static void Info(
string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Console.WriteLine("信息为: " + message);
Console.WriteLine("方法名称: " + memberName);
Console.WriteLine("源文件地址: " + sourceFilePath);
Console.WriteLine("方法使用所在行号: " + sourceLineNumber);
}
public static void Debug(
string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Console.WriteLine("信息为: " + message);
Console.WriteLine("方法名称: " + memberName);
Console.WriteLine("源文件地址: " + sourceFilePath);
Console.WriteLine("方法使用所在行号: " + sourceLineNumber);
}
public static void Error(
Exception ex,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Console.WriteLine("信息为: " + ex.Message);
Console.WriteLine("方法名称: " + memberName);
Console.WriteLine("源文件地址: " + sourceFilePath);
Console.WriteLine("方法使用所在行号: " + sourceLineNumber);
}
}
控制台测试:
class Program
{
static void Main(string[] args)
{
LogHelp.Info("*******Info********");
Console.ReadKey();
}
}
输出结果:能够清除看到调用类Program、调用方法Main、所在行14 Line
那么在正式环境怎么样呢,删除掉Debug目录下的pdb文件,结果跟上面一样: