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

참고 항목