다음을 통해 공유


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

파괴적 변경 유형

이 변경 사항은 행동 변화입니다.

변경 이유

이 런타임 변경은 결국 .NET에서 제거되는 BinaryFormatter 사용되지 않는 계획의BinaryFormatter 다음 단계입니다.

가장 좋은 조치는 보안 및 안정성 결함 때문에 BinaryFormatter에서 다른 곳으로 마이그레이션하는 것입니다. 자세한 내용은 기본 설정 대안을 참조하세요.

계속 BinaryFormatter을 사용해야 하는 경우, 프로젝트 파일에서 호환성 스위치를 지정하여 BinaryFormatter 기능을 해제할 수 있습니다. 자세한 내용은 .NET 7 호환성이 손상되는 변경 알림의 권장 작업 섹션을 참조하세요. 해당 호환성 스위치는 .NET 8에서 계속 적용됩니다.

영향을 받는 API

참고하십시오