BrotliStream은 정의되지 않은 CompressionLevel 값을 더 이상 허용하지 않습니다.
CompressionLevel 인수를 사용하는 BrotliStream 생성자는 CompressionLevel 열거형에 정의되지 않은 값을 더 이상 허용하지 않습니다. 잘못된 값을 전달하면 ArgumentException이 throw됩니다.
이전 동작
BrotliStream을 사용하면 원하는 수준을 CompressionLevel로 직접 캐스팅하여 생성자에 임의 압축 수준을 전달할 수 있습니다. 다음은 그 예입니다.
BrotliStream brotli = new BrotliStream(baseStream,
(CompressionLevel)5); // Use level 5
그러나 임의의 수준이 제공된 경우 기본 라이브러리에 있는 그대로 전달되므로 일관되지 않고 잠재적으로 예기치 않은 동작이 발생합니다.
새 동작
BrotliStream은 CompressionLevel에 정의된 값만 허용합니다. 정의되지 않은 값을 생성자에 전달하면 ArgumentException이 throw됩니다.
도입된 버전
.NET 7
호환성이 손상되는 변경의 형식
이 변경은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
CompressionLevel 열거형의 목적은 개발자가 튜닝 매개 변수의 의미를 이해하지 못해도 압축 알고리즘을 사용할 수 있도록 하는 것입니다.
임의의 수준이 제공된 경우 기본 라이브러리에 있는 그대로 전달되므로 일관되지 않고 잠재적으로 예기치 않은 동작이 발생할 수 있습니다. 이 변경으로 동작은 다른 압축 스트림(예: DeflateStream)에 맞춰 진행됩니다.
CompressionLevel 값이 새로 튜닝되고 CompressionLevel.SmallestSize가 추가되므로 압축 알고리즘에서 다양한 장단점이 나타날 수 있습니다. 사용자는 계속해서 CompressionLevel 값을 사용하여 이러한 장단점의 추상화를 구현할 수 있습니다.
권장 조치
정의되지 않은 값을 CompressionLevel로 전달하려는 경우 사용 사례를 다시 검토하고 문서화된 가장 적합한 값을 결정합니다.
영향을 받는 API
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기