Obsługa języka Visual Basic

System.Text.Json Części struktury ref, które nie są obsługiwane przez visual basic. Jeśli spróbujesz użyć System.Text.Json interfejsów API struktury ref z językiem Visual Basic, otrzymasz błędy kompilatora BC40000. Komunikat o błędzie wskazuje, że problem jest przestarzałym interfejsem API, ale rzeczywisty problem jest brakiem obsługi struktury ref w kompilatorze. Następujące części System.Text.Json programu nie mogą być używane z poziomu języka Visual Basic:

  • Struktura Utf8JsonReader . JsonConverter<T>.Read Ponieważ metoda przyjmuje Utf8JsonReader parametr, to ograniczenie oznacza, że nie można użyć języka Visual Basic do pisania konwerterów niestandardowych. Obejściem tego problemu jest zaimplementowanie niestandardowych konwerterów w zestawie biblioteki języka C# i odwołanie do tego zestawu z projektu VB. Przyjęto założenie, że wszystko, co robisz w Visual Basic, to zarejestrowanie konwerterów w serializatorze. Nie można wywołać Read metod konwerterów z poziomu kodu Visual Basic.
  • Przeciążenia innych interfejsów API, które zawierają ReadOnlySpan<T> typ. Większość metod obejmuje przeciążenia, które używają String zamiast ReadOnlySpan.

Te ograniczenia obowiązują, ponieważ struktury ref nie mogą być bezpiecznie używane bez obsługi języka, nawet wtedy, gdy tylko "przekazywanie danych przez". Usunięcie tego błędu spowoduje, że kod języka Visual Basic może uszkodzić pamięć i nie powinien być wykonywany.