Nowe identyfikatory diagnostyczne przestarzałych interfejsów API
Wcześniej kilka interfejsów API zostało przestarzałych bez używania niestandardowych identyfikatorów diagnostycznych. Począwszy od platformy .NET 6, te interfejsy API raportują jako przestarzałe przy użyciu różnych niestandardowych identyfikatorów diagnostycznych. Jeśli pominięto ostrzeżenia dotyczące użycia tych interfejsów API za pośrednictwem CS0618, zmodyfikuj pomijania, aby używać nowych identyfikatorów diagnostycznych, które są SYSLIB0003, SYSLIB0019 i SYSLIB0020.
Opis zmiany
W poniższej tabeli przedstawiono stare i nowe identyfikatory diagnostyczne dla wymienionego przestarzałego interfejsu API.
interfejs API | Poprzedni identyfikator diagnostyczny | Nowy identyfikator diagnostyczny |
---|---|---|
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 |
Wprowadzona wersja
.NET 6
Przyczyna wprowadzenia zmiany
Począwszy od platformy .NET 5, obsoletions są przeznaczone do używania niestandardowych wartości identyfikatorów diagnostycznych w celu umożliwienia szczegółowego pomijania ostrzeżeń. Zapewnia to lepsze środowisko, gdy przestarzałe interfejsy API muszą pozostać przywołytyzowane. Te obsoletions, których dotyczy problem, powinny mieć niestandardowe wartości identyfikatorów diagnostycznych zastosowane, gdy interfejsy API zostały pierwotnie oznaczone jako [Obsolete]
.
Zalecana akcja
Jeśli identyfikatory diagnostyczne SYSLIB0003, SYSLIB0019 lub SYSLIB0020 są generowane na podstawie kompilacji, przejrzyj użycie dotkniętych interfejsów API. Jeśli to możliwe, unikaj używania tych interfejsów API i zapoznaj się z komunikatami i dokumentacją, aby uzyskać alternatywy. Jeśli musisz zachować odwołania do przestarzałych interfejsów API i pominąć diagnostykę, pomiń ostrzeżenia przy użyciu nowych identyfikatorów diagnostycznych zamiast CS0618.
Dotyczy interfejsów API
- 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