Share via


Visual Basic 지원

System.Text.Json의 일부는 Visual Basic에서 지원되지 않는 ref struct를 사용합니다. Visual Basic에서 System.Text.Json ref struct API를 사용하려고 하면 BC40000 컴파일러 오류가 발생합니다. 이 오류 메시지는 문제가 사용되지 않는 API임을 나타내지만 실제 문제는 컴파일러에서 ref struct 지원이 부족하다는 것입니다. 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 struct는 "데이터 전달"만 하는 경우에도 언어 지원이 없으면 안전하게 사용할 수 없으므로 이러한 제한 사항이 발생합니다. 이 오류를 해결하려고 하면 수행되어서는 안 되며 메모리를 손상시킬 수 있는 Visual Basic 코드가 발생합니다.