Olvasás angol nyelven

Megosztás a következőn keresztül:


CA1422: Platformkompatibilitás ellenőrzése – elavult API-k

Tulajdonság Érték
Szabályazonosító CA1422
Cím Platformkompatibilitás ellenőrzése – elavult API-k
Kategória Együttműködési lehetőség
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 9-ben Figyelmeztetésként

Ok

Az elavult operációs rendszert támogatóként megjelölt hívási helyről hívunk meg egy API-t ObsoletedOSPlatformAttribute . Ez a szabály hasonló a CA1416-hoz : Ellenőrizze a platformkompatibilitást , azzal a kivételrel, hogy figyelmeztetést ad az adott platformon elavult API-król, és nem támogatottak teljes mértékben.

Szabály leírása

Nem ajánlott egy adott operációs rendszerben (verzióban) elavult API meghívása az adott operációs rendszerről (verzió) elérhető hívási helyről. Fontolja meg inkább egy nem elavult API meghívását, vagy az elavult API meghívása ellen az érintett operációs rendszereken.

Szabálysértések kijavítása

Ennek a szabálynak a megsértését többféleképpen is kijavíthatja:

Példa

A következő kódrészlet a CA1422 megsértése esetén jelenik meg:

[SupportedOSPlatform("Windows")]
public void M1()
{
    // Violates rule CA1422.
    // This call site is reachable on 'Windows',
    // but 'ObsoletedOnWindows62()'
    // is obsoleted on 'Windows 6.2' and later.
    ObsoletedOnWindows62();
}

[ObsoletedOSPlatform("Windows6.2")]
public void ObsoletedOnWindows62()
{ }

Az alábbi kódrészlet kijavítja a szabálysértést azáltal, hogy hozzáad egy UnsupportedOSPlatformAttribute attribútumot a hívási helyhez, amely megadja a hívott metódus elavult verzióját.

[SupportedOSPlatform("Windows")]
[ObsoletedOSPlatform("Windows6.2")]
public void M1()
{
    ObsoletedOnWindows62();
}

[ObsoletedOSPlatform("Windows6.2")]
public void ObsoletedOnWindows62()
{ }

Mikor kell letiltani a figyelmeztetéseket?

Nyugodtan letilthatja a szabály figyelmeztetését, ha nem aggódik egy elavult API meghívása miatt, vagy ha tudja, hogy az elavult API soha nem lesz meghívva az érintett operációsrendszer-verzióra.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable CA1422
// The code that's violating the rule is on this line.
#pragma warning restore CA1422

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_diagnostic.CA1422.severity = none

A teljes szabálykategória letiltásához állítsa be a kategória súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Interoperability.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Lásd még