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


CA2026: A JsonElement.Parse előnyben részesítése a JsonDocument.Parse() helyett. RootElement

Ingatlan Érték
Szabályazonosító CA2026
Title Részesítsd előnyben a JsonElement.Parse-t a JsonDocument.Parse().RootElement-tel szemben.
Kategória Megbízhatóság
A javítás törést okoz vagy nem okoz törést Nem törhető
Alapértelmezés szerint engedélyezve a .NET 10-ben Javaslatként

Oka

A kód JsonDocument.Parse().RootElement használja a JSON-t JsonElement-vé alakításra.

Szabály leírása

JsonElement.Parse hatékonyabb, mint a hívás JsonDocument.Parse().RootElement. A JsonDocument típus megvalósítja a IDisposable-t és tömböket bérel a ArrayPool<T>-ból, ami memóriaszivárgáshoz vagy fokozott GC-nyomást eredményezhet, ha nem megfelelően kezeli a dokumentum lezárását. A JsonElement.Parse módszer, amely a .NET 10-ben került bevezetésre, közvetlenül JsonElement elemzi a JSON-t anélkül, hogy ezekkel a problémákkal szembesülne, így hatékonyabb és kevésbé hajlamos a hibákra.

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

Cserélje le a hívásokat a /> kifejezésre .

Példák

A következő kódrészlet a CA2026 megsértését mutatja be:

public static void ProcessJsonViolation(string json)
{
    JsonElement element = JsonDocument.Parse(json).RootElement;
    //...
}
Public Sub ProcessJsonViolation(json As String)
    Dim element As JsonElement = JsonDocument.Parse(json).RootElement
    '...
End Sub

A következő kódrészlet kijavítja a szabálysértést:

public static void ProcessJsonFixed(string json)
{
    JsonElement element = JsonElement.Parse(json);
    //...
}
Public Sub ProcessJsonFixed(json As String)
    Dim element As JsonElement = JsonElement.Parse(json)
    '...
End Sub

Mikor kell letiltani a figyelmeztetéseket?

Ne nyomja el ennek a szabálynak a figyelmeztetéseit. Ha a .NET 10-et vagy újabb verziót céloz meg, javasolt a JsonElement.Parse() használata a jobb teljesítmény és erőforrás-kezelés érdekében.

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 CA2026
// The code that's violating the rule is on this line.
#pragma warning restore CA2026

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.CA2026.severity = none

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

Lásd még