Condividi tramite


Supporto di Visual Basic

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

  • La 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 sovraccarichi 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.