Stöd för Visual Basic

Delar av System.Text.Json använda ref structs, som inte stöds av Visual Basic. Om du försöker använda System.Text.Json referensstrukturerade API:er med Visual Basic får du BC40000 kompilatorfel. Felmeddelandet anger att problemet är ett föråldrat API, men det faktiska problemet är bristen på referensstruktureringsstöd i kompilatorn. Följande delar av System.Text.Json kan inte användas från Visual Basic:

  • Structen Utf8JsonReader . Eftersom metoden tar en Utf8JsonReader parameter innebär den här begränsningen JsonConverter<T>.Read att du inte kan använda Visual Basic för att skriva anpassade konverterare. En lösning för detta är att implementera anpassade konverterare i en C#-bibliotekssammansättning och referera till sammansättningen från ditt VB-projekt. Detta förutsätter att allt du gör i Visual Basic är att registrera konverterarna i serialiseraren. Du kan inte anropa Read konverterarnas metoder från Visual Basic-koden.
  • Överlagringar av andra API:er som innehåller en ReadOnlySpan<T> typ. De flesta metoder omfattar överlagringar som använder String i stället för ReadOnlySpan.

Dessa begränsningar är på plats eftersom referensstrukturer inte kan användas på ett säkert sätt utan språkstöd, även när de bara "skickar data genom". Om du omstörtar det här felet resulterar det i Visual Basic-kod som kan skada minnet och inte bör göras.