Przestarzałe elementy interfejsu API z innymi niż domyślne identyfikatorami diagnostycznymi

Niektóre interfejsy API zostały oznaczone jako przestarzałe, począwszy od platformy .NET 5. Ta zmiana powodująca niezgodność jest specyficzna dla interfejsów API, które zostały oznaczone jako przestarzałe przy użyciu niestandardowego identyfikatora diagnostycznego. Pomijanie domyślnego identyfikatora diagnostycznego obsoletion, który jest CS0618 dla kompilatora języka C#, nie pomija ostrzeżeń generowanych przez kompilator podczas użycia tych interfejsów API.

Opis zmiany

W poprzednich wersjach platformy .NET te interfejsy API mogą być używane bez żadnego ostrzeżenia dotyczącego kompilacji. W programie .NET 5 i nowszych wersjach użycie tych interfejsów API powoduje wygenerowanie ostrzeżenia w czasie kompilacji lub błędu z niestandardowym identyfikatorem diagnostycznym. Użycie niestandardowych identyfikatorów diagnostycznych umożliwia pomijanie ostrzeżeń dotyczących obsoletion indywidualnie zamiast pomijania wszystkich ostrzeżeń dotyczących obsoletionu.

W poniższej tabeli wymieniono niestandardowe identyfikatory diagnostyczne i odpowiadające im komunikaty ostrzegawcze dla przestarzałych interfejsów API.

Identyfikator diagnostyczny opis Waga błędu
SYSLIB0001 Kodowanie UTF-7 jest niezabezpieczone i nie powinno być używane. Zamiast tego rozważ użycie protokołu UTF-8. Ostrzeżenie
SYSLIB0002 PrincipalPermissionAttribute nie jest honorowany przez środowisko uruchomieniowe i nie może być używany. Błąd
SYSLIB0003 Zabezpieczenia dostępu kodu (CAS) nie są obsługiwane ani honorowane przez środowisko uruchomieniowe. Ostrzeżenie
SYSLIB0004 Funkcja regionu wykonywania ograniczonego (CER) nie jest obsługiwana. Ostrzeżenie
SYSLIB0005 Globalna pamięć podręczna zestawów (GAC) nie jest obsługiwana. Ostrzeżenie
SYSLIB0006 Thread.Abort() program nie jest obsługiwany i zgłasza błąd PlatformNotSupportedException. Ostrzeżenie
SYSLIB0007 Domyślna implementacja tego algorytmu kryptografii nie jest obsługiwana. Ostrzeżenie
SYSLIB0008 Interfejs CreatePdbGenerator() API nie jest obsługiwany i zgłasza błąd PlatformNotSupportedException. Ostrzeżenie
SYSLIB0009 Metody AuthenticationManager.Authenticate i AuthenticationManager.PreAuthenticate nie są obsługiwane i zgłaszają wartość PlatformNotSupportedException. Ostrzeżenie
SYSLIB0010 Niektóre interfejsy API komunikacji zdalnie nie są obsługiwane i zgłaszają wyjątek PlatformNotSupportedException. Ostrzeżenie
SYSLIB0011 BinaryFormatter serializacja jest przestarzała i nie powinna być używana. Ostrzeżenie
SYSLIB0012 Assembly.CodeBase i Assembly.EscapedCodeBase są uwzględniane tylko w przypadku zgodności programu .NET Framework. Użycie w zamian parametru Assembly.Location. Ostrzeżenie

Wprowadzona wersja

.NET 5.0

  • Postępuj zgodnie z określonymi wskazówkami podanymi dla każdego identyfikatora diagnostycznego przy użyciu linku adresu URL podanego w ostrzeżeniu.

  • Ostrzeżenia lub błędy dla tych obsoletions nie mogą być pomijane przy użyciu standardowego identyfikatora diagnostycznego dla przestarzałych typów lub elementów członkowskich; Zamiast tego użyj niestandardowej SYSLIBxxxx wartości identyfikatora diagnostycznego.

Dotyczy interfejsów API

SYSLIB0001

SYSLIB0002

SYSLIB0003

Klasy w System.Security.Permissions przestrzeni nazw:

Klasy pochodzące z CodeAccessSecurityAttributeklasy :

Interfejsów:

Klasy implementujące IStackWalk:

Klasy implementujące IPermission:

Klasy pochodzące z CodeAccessPermissionklasy :

Klasy pochodzące z ResourcePermissionBaseklasy :

Wyliczenia w System.Security.Permissions przestrzeni nazw:

Klasy i składowe, które zależą od typów zabezpieczeń dostępu do kodu:

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

Zobacz też