null 时的活动操作名称

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

旧行为

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

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

新行为

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

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

引入的版本

.NET 8 预览版 1

中断性变更的类型

此更改为行为更改

更改原因

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

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

受影响的 API