从 .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
时需将操作名称存储为空字符串。