Compartilhar via


Suporte ao Visual Basic

Partes de System.Text.Json usam structs ref, que não têm suporte no Visual Basic. Se você tentar usar APIs de struct de ref System.Text.Json com o Visual Basic, receberá erros do compilador BC40000. A mensagem de erro indica que o problema é uma API obsoleta, mas o problema real é a falta de suporte para o struct ref no compilador. As seguintes partes de System.Text.Json não são utilizáveis do Visual Basic:

  • A Utf8JsonReader estrutura. Como o método JsonConverter<T>.Read usa um parâmetro Utf8JsonReader, essa limitação significa que você não pode usar o Visual Basic para gravar conversores personalizados. Uma solução alternativa para isso é implementar conversores personalizados em um assembly de biblioteca C# e fazer referência a esse assembly do seu projeto do VB. Isso pressupõe que tudo o que você faz no Visual Basic é registrar os conversores no serializador. Você não pode chamar os métodos Read dos conversores do código do Visual Basic.
  • Sobrecargas de outras APIs que incluem um tipo ReadOnlySpan<T>. A maioria dos métodos inclui sobrecargas que usam String em vez de ReadOnlySpan.

Essas restrições estão em vigor porque os structs de ref não podem ser usados com segurança sem suporte a linguagem, mesmo quando estiver apenas "passando dados". Você não deveria subverter esse erro. Se fizer isso, seu código do Visual Basic poderá corromper a memória.