다음을 통해 공유


대부분의 프로젝트 형식에서 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

참고 항목