Teilen über


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 struct 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 bestehen, weil ref structs ohne sprachliche Unterstützung nicht sicher verwendet werden können, selbst wenn sie nur „Daten durchreichen“. Sie sollten diesen Fehler nicht ignorieren. Wenn Sie dies tun, kann Ihr Visual Basic-Code den Speicher beschädigen.