null 时的活动操作名称

从 .NET 8 开始,如果使用Activity创建null对象,则操作名称将存储为空字符串(""),而不是null

以前的行为

以前,如果使用Activity操作名称创建了null对象,则活动中的操作名称存储为null

new Activity(operationName: null).OperationName // Value is null.

新行为

从 .NET 8 开始,如果使用 Activity 作为操作名称来创建 null 对象,操作名称将存储为空字符串。

new Activity(operationName: null).OperationName // Value is "".

已引入的版本

.NET 8 预览版 1

破坏性变更的类型

此更改为行为更改

更改原因

null对象中的Activity操作名称可能会对后端跟踪收集器产生不良影响,因为这些收集器通常假定操作名称为非空。 为避免故障,跟踪收集器必须在 null 对象内使用特殊情况下的 Activity 操作名称。 此更改消除了特殊情况要求。

此更改不太可能导致中断,因为创建null对象时使用Activity很少。 如果由于任何原因您的代码依赖于 null 作为操作名称的值,请将代码调整为不使用 null,或者如果指定 null,则预期操作名称将存储为空字符串。

受影响的 API