Visual Basic のサポート

System.Text.Json の一部で、Visual Basic でサポートされていない System.Text.Jsonが使用されています。 Visual Basic で System.Text.Json ref 構造 API を使用しようとすると、BC40000 コンパイラ エラーが発生します。 このエラー メッセージは、問題が古い API であることを示していますが、実際の問題は、コンパイラでの ref 構造体のサポートの欠如です。 System.Text.Json の次の部分は、Visual Basic では使用できません。

  • Utf8JsonReader 構造体。 JsonConverter<T>.Read メソッドは Utf8JsonReader パラメーターを受け取るため、この制限は、Visual Basic を使用してカスタム コンバーターを記述することはできないことを意味します。 これを回避するには、C# ライブラリ アセンブリにカスタム コンバーターを実装し、VB プロジェクトからそのアセンブリを参照します。 これは、Visual Basic で行うのが、コンバーターをシリアライザーに登録するだけであることを前提としています。 Visual Basic コードからコンバーターの Read メソッドを呼び出すことはできません。
  • ReadOnlySpan<T> 型を含む他の API のオーバーロード。 ほとんどのメソッドには、ReadOnlySpan の代わりに String を使用するオーバーロードが含まれています。

これらの制限が適用されるのは、"データを通過させる" だけでも、言語サポートなしでは ref 構造体を安全に使用できないためです。このエラーを無効にすると、メモリを破損する可能性があり、実行すべきではない Visual Basic コードが生成されます。