Novas IDs de diagnóstico para APIs obsoletas
Anteriormente, algumas APIs eram obsoletas sem usar IDs de diagnóstico personalizadas. Do .NET 6 em diante, essas APIs são relatadas como obsoletas usando diferentes IDs de diagnóstico personalizadas. Se você suprimiu avisos de uso dessas APIs por meio do CS0618, modifique as supressões para usar as novas IDs de diagnóstico, que são SYSLIB0003, SYSLIB0019 e SYSLIB0020.
Descrição das alterações
A tabela a seguir mostra as IDs de diagnóstico antigas e novas para a API obsoleta listada.
API | ID de diagnóstico anterior | Nova ID de diagnóstico |
---|---|---|
Thread.GetCompressedStack() | CS0618 | SYSLIB0003 |
Thread.SetCompressedStack(CompressedStack) | CS0618 | SYSLIB0003 |
RuntimeEnvironment.SystemConfigurationFile | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid) | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid) | CS0618 | SYSLIB0019 |
JsonSerializerOptions.IgnoreNullValues | CS0618 | SYSLIB0020 |
Versão introduzida
.NET 6
Motivo da alteração
Do .NET 5 em diante, os itens obsoletos destinam-se a usar valores de ID de diagnóstico personalizados para permitir a supressão refinada dos avisos. Isso gera uma experiência melhor quando as APIs obsoletas precisam permanecer referenciadas. Os itens obsoletos afetados aqui deveriam ter tido os valores de ID de diagnóstico personalizados aplicados quando as APIs foram originalmente marcadas como [Obsolete]
.
Ação recomendada
Se as IDs de diagnóstico SYSLIB0003, SYSLIB0019 ou SYSLIB0020 forem produzidas com base na sua compilação, examine o uso das APIs afetadas. Se possível, evite usar essas APIs e confira as mensagens e a documentação para obter alternativas. Se você precisar manter as referências às APIs obsoletas e suprimir o diagnóstico, suprima os avisos usando as novas IDs de diagnóstico em vez de CS0618.
APIs afetadas
- System.Threading.Thread.GetCompressedStack()
- System.Threading.Thread.SetCompressedStack(CompressedStack)
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
- System.Text.Json.JsonSerializerOptions.IgnoreNullValues