Compartir a través de


Compatibilidad con Visual Basic

Hay partes de System.Text.Json que usan estructuras ref, que no son compatibles con Visual Basic. Si intenta usar las API de estructuras ref de System.Text.Json con Visual Basic, recibirá errores del compilador BC40000. El mensaje de error indica que el problema es una API obsoleta, pero el problema real es la falta de compatibilidad de las estructuras ref con el compilador. Las siguientes partes de System.Text.Json no se pueden usar desde Visual Basic:

  • Estructura Utf8JsonReader. Como el método JsonConverter<T>.Read toma un parámetro Utf8JsonReader, esta limitación significa que no se puede usar Visual Basic para escribir convertidores personalizados. Una solución alternativa para esto es implementar convertidores personalizados en un ensamblado de la biblioteca de C# y hacer referencia a ese ensamblado desde el proyecto de VB. Esto supone que todo lo que hace en Visual Basic es registrar los convertidores en el serializador. No se pueden llamar a los métodos Read de los convertidores mediante un código de Visual Basic.
  • Sobrecargas de otras API que incluyen un tipo ReadOnlySpan<T>. La mayoría de los métodos incluyen sobrecargas que usan String en lugar de ReadOnlySpan.

Estas restricciones se aplican porque las estructuras ref no se pueden usar de forma segura sin compatibilidad con lenguajes, incluso aunque solo se "pasen datos". Al subvertir este error, se producirá código de Visual Basic que puede dañar la memoria y esto no debería hacerse.