背景
在 .NET 走向开源后,我们可以方便的查看 .NET 内部的实现方式,学习和寻找问题,甚至参与到 .NET 的开发中。
前段时间,同事需要查看 C# 的 Task 类 (System.Threading.Tasks) 的一些实现和内部的原理,想找 Task 类的源代码来查看,却遇到了一些阻碍……
本文借此机会介绍两种方式来查看 .NET Core 3.1 的源代码:
- 直接查看 .NET Core 源代码
- 通过反编译来查看实现
在 .NET 走向开源后,我们可以方便的查看 .NET 内部的实现方式,学习和寻找问题,甚至参与到 .NET 的开发中。
前段时间,同事需要查看 C# 的 Task 类 (System.Threading.Tasks) 的一些实现和内部的原理,想找 Task 类的源代码来查看,却遇到了一些阻碍……
本文借此机会介绍两种方式来查看 .NET Core 3.1 的源代码:
在日志记录时,我们往往希望体现出一条清晰的操作线索,先执行了A,然后执行了B,接着执行C……但在 Web 项目中,往往同时处理着多个不同客户端发出的请求,如果这些请求都在进行相同的操作,我们的日志将无法分辨。项目中使用的日志框架是 log4net,过去,我在项目中通过 AutoFac 创建了一个生命周期为 PreRequest 的对象,内部维护了一个 GUID,用来充当 RequestId。这样在记录日志时将该 RequestId 一同记录上,就解决了该问题。
后来领导给其他小组提到了 log4net 的 MDC,希望我们也进行调整,大概意思是可以用 MDC 储存 RequestId 并能方便的生成到日志中。本文记录了这次修改的过程。