다음을 통해 공유


SerializationFormat.Binary는 사용되지 않습니다

SerializationFormat.BinaryDataTableDataSet에 대해 더 이상 사용되지 않습니다. 이진 파일 직렬화는 안전하지 않은 BinaryFormatter에 의존합니다. 코드에서 SerializationFormat.Binary를 사용하면 컴파일 시 폐기 경고 SYSLIB0038이 생성됩니다.

또한 다음과 같은 경우 런타임 시 InvalidEnumArgumentException이 throw됩니다.

이전 동작

이전에는 RemotingFormat 속성 집합을 SerializationFormat.Binary로 설정하여 DataTableDataSet를 직렬화 및 역직렬화할 수 있었으며 내부적으로는 BinaryFormatter를 사용했습니다.

새 동작

.NET 7부터 RemotingFormat 속성 집합을 SerializationFormat.Binary로 설정하여 DataTableDataSet를 직렬화 또는 역직렬화하려고 하면 InvalidEnumArgumentException이 throw됩니다.

도입된 버전

.NET 7

호환성이 손상되는 변경의 형식

이 변경 내용은 원본 호환성이진 호환성에 영향을 줄 수 있습니다.

변경 이유

SerializationFormat.BinaryBinaryFormatter를 통해 구현됩니다. 이는 안전하지 않으며 전체 .NET 스택에서 더 이상 사용되지 않습니다.

코드에서 SerializationFormat.Binary를 사용하는 경우 SerializationFormat.Xml 사용으로 전환하거나 다른 직렬화 방법을 사용합니다.

그렇지 않으면 Switch.System.Data.AllowUnsafeSerializationFormatBinary AppContext 스위치를 설정할 수 있습니다. 이 스위치를 사용하면 SerializationFormat.Binary 사용을 허용하도록 옵트인할 수 있으므로 코드가 이전처럼 작동할 수 있습니다. 그러나 이 스위치는 .NET 8에서 제거됩니다. 스위치 설정에 대한 자세한 내용은 라이브러리 소비자용 AppContext를 참조하세요.

영향을 받는 API

참고 항목