대부분의 프로젝트 형식에서 BinaryFormatter가 사용하지 않도록 설정되었습니다.
이제 BinaryFormatter.Serialize(Stream, Object) 및 BinaryFormatter.Deserialize(Stream) 메서드는 콘솔 애플리케이션을 포함하여 거의 모든 프로젝트 형식에서 런타임에 NotSupportedException을 throw합니다.
이전 동작
.NET 7에서는 BinaryFormatter.Serialize(Stream, Object) 및 BinaryFormatter.Deserialize(Stream) 메서드가 더 이상 사용되지 않는 것으로 표시되었으며 컴파일 시 오류가 발생했습니다. 그러나 애플리케이션에서 더 이상 사용되지 않는 함수를 표시하지 않은 경우에도 메서드를 호출할 수 있으며 대부분의 프로젝트 형식(ASP.NET, WASM 및 MAUI 제외)에서 제대로 작동했습니다. 예를 들어, API는 콘솔 앱에서 올바르게 작동했습니다.
새 동작
.NET 8부터 영향을 받는 메서드는 Windows Forms 및 WPF를 제외한 모든 프로젝트 형식에서 런타임에 NotSupportedException을 throw합니다. API는 Windows Forms 및 WPF를 포함한 모든 프로젝트 형식에서 계속 사용되지 않는(오류로) 상태로 유지됩니다.
도입된 버전
.NET 8 미리 보기 4
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
이 런타임 변경은 BinaryFormatter 폐기 계획의 다음 단계로, 최종적으로 BinaryFormatter가 .NET에서 제거됩니다.
권장 조치
가장 좋은 조치는 보안 및 안정성 결함으로 인해 BinaryFormatter
에서 마이그레이션하는 것입니다. 자세한 내용은 기본 설정 대안을 참조하세요.
BinaryFormatter
를 계속 사용해야 하는 경우 프로젝트 파일에서 호환성 스위치를 설정하여 BinaryFormatter
기능을 다시 사용하도록 설정할 수 있습니다. 자세한 내용은 .NET 7 호환성이 손상되는 변경 알림의 권장 작업 섹션을 참조하세요. 해당 호환성 스위치는 .NET 8에서 계속 유지됩니다.
영향을 받는 API
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)
참고 항목
.NET