Поделиться через


Предупреждение CA2015: не определяйте методы завершения для типов, производных от MemoryManager<T>

Правило CA2015 анализатора кода .NET включено по умолчанию, начиная с .NET 5. Оно создает предупреждение сборки для всех типов, производных от MemoryManager<T>, определяющих метод завершения.

Описание изменения

Начиная с .NET 5 пакет SDK для .NET включает анализаторы исходного кода .NET. Некоторые из этих правил включены по умолчанию, в том числе CA2015. Если проект содержит код, нарушающий это правило и настроенный на обработку предупреждений как ошибок, это изменение может нарушить сборку.

Правило CA2015 помечает типы, производные от MemoryManager<T>, которые определяют метод завершения. Добавление метода завершения в тип, производный от MemoryManager<T>, скорее всего, свидетельствует об ошибке. Предполагается, что собственный ресурс, который мог быть получен в Span<T>, очищается, даже если он по-прежнему используется Span<T>.

Представленные версии

5,0

  • Удалите определение метода завершения. См. раздел CA2015.

  • Чтобы полностью отключить анализ кода, задайте для параметра EnableNETAnalyzers значение false в файле проекта. Дополнительные сведения см. в разделе EnableNETAnalyzers.

Затронутые API

Невозможно обнаружить с помощью анализа API.