Visual Basic-Unterstützung

Teile von System.Text.Json, die ref-Strukturen verwenden, werden von Visual Basic nicht unterstützt. Wenn Sie versuchen, System.Text.Json-ref-Struktur-APIs mit Visual Basic zu verwenden, erhalten Sie BC40000-Compilerfehler. Die Fehlermeldung gibt an, dass das Problem eine veraltete API ist, aber das eigentliche Problem besteht darin, dass im Compiler keine Unterstützung für ref-Strukturen vorhanden ist. Die folgenden Teile von System.Text.Json können in Visual Basic nicht verwendet werden:

  • Die Utf8JsonReader-Struktur. Da die JsonConverter<T>.Read-Methode einen Utf8JsonReader-Parameter akzeptiert, bedeutet diese Einschränkung, dass Sie Visual Basic nicht verwenden können, um benutzerdefinierte Konverter zu schreiben. Eine Problemumgehung hierfür besteht darin, benutzerdefinierte Konverter in einer C#-Bibliotheksassembly zu implementieren und aus Ihrem VB-Projekt auf diese Assembly zu verweisen. Dabei wird davon ausgegangen, dass Sie in Visual Basic nur die Konverter beim Serialisierungsmodul registrieren. Sie können die Read-Methoden der Konverter nicht aus Visual Basic-Code aufrufen.
  • Überladungen anderer APIs, die einen ReadOnlySpan<T>-Typ enthalten. Die meisten Methoden enthalten Überladungen, die String anstelle von ReadOnlySpan nutzen.

Diese Einschränkungen gelten, da ref-Strukturen ohne Sprachunterstützung nicht sicher verwendet werden können, auch wenn „nur“ Daten übergeben werden. Wenn Sie diesen Fehler umgehen, entsteht Visual Basic-Code, der den Speicher beschädigen kann und nicht verwendet werden sollte.