Condividi tramite


Supporto in Visual Basic

Le parti di System.Text.Json usano struct di riferimento che non sono supportati da Visual Basic. Se si tenta di usare System.Text.Json le API di riferimento struct con Visual Basic, vengono visualizzati BC40000 errori del compilatore. Il messaggio di errore indica che il problema è un'API obsoleta, ma il problema effettivo non è supportato dallo struct di riferimento nel compilatore. Le parti seguenti di System.Text.Json non sono utilizzabili da Visual Basic:

  • Lo Struct Utf8JsonReader. Poiché il metodo JsonConverter<T>.Read accetta un parametro Utf8JsonReader, questa limitazione significa che non è possibile usare Visual Basic per scrivere convertitori personalizzati. Una soluzione alternativa consiste nell'implementare convertitori personalizzati in un assembly di libreria C# e fare riferimento a tale assembly dal progetto VB. Ciò presuppone che tutto ciò che si fa in Visual Basic sia registrare i convertitori nel serializzatore. Non è possibile chiamare i metodi Read dei convertitori dal codice Visual Basic.
  • Overload di altre API che includono un tipo ReadOnlySpan<T>. La maggior parte dei metodi include overload che usano String anziché ReadOnlySpan.

Queste restrizioni sono applicate perché gli struct di riferimento non possono essere usati in modo sicuro senza supporto linguistico, anche quando si passano semplicemente i dati. Non è consigliabile annullare questo errore. In tal caso, il codice visual Basic può danneggiare la memoria.