C#特性应用-通过Log记录调用者信息
软件运行过程中,处理运行错误,Log的记录是不可或缺的。
在学习特性的过程中,发现了一个很方便的Log记录的方式。
语言环境C# 5.0以上。
System.Runtime.CompilerServices 命名空间下。
通过CallerLineNumber、CallerFilePath、CallerMemberName,特性可以获取调用者信息。
具体代码如下所示:
static void Main(string[] args)
{
var p = new Program();
p.Log();
p.SomeProperty = 33;
Action a = () => p.Log();
a();
Console.ReadLine();
}
private int someProperty;
public int SomeProperty
{
get { return someProperty; }
set
{
this.Log();
someProperty = value;
}
}
public void Log([CallerLineNumber]int line =-1,[CallerFilePath] string path =null,[CallerMemberName] string name = null)
{
Console.WriteLine((line<0)?"No Line": $"Line:{line}");
Console.WriteLine((path == null) ? "No File Path" : $"path:{path}");
Console.WriteLine((name == null) ? "No Member Name" : $"Name:{name}");
Console.WriteLine();
}
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了