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


Идентификаторы диагностики

Диагностические идентификаторы используются для идентификации API или шаблонов, которые могут вызывать предупреждения или ошибки компилятора. Это можно сделать с помощью DiagnosticId или ExperimentalAttribute. Их можно подавлять на уровне потребителя для каждого идентификатора диагностики.

Экспериментальные API

OOXML0001

Заголовок: API-интерфейсы, связанные с IPackage, в настоящее время являются экспериментальными

С версии 3.0 был добавлен новый уровень абстракции между System.IO.Packaging и DocumentFormat.OpenXml.Packaging.OpenXmlPackage. В настоящее время это экспериментальный метод, но при необходимости его можно использовать. Это будет стабилизировано в будущем выпуске и может потребовать или не требовать изменения кода.

Подавление предупреждений

По возможности рекомендуется использовать доступный обходной путь. Однако если вы не можете изменить код, вы можете подавить предупреждения с помощью #pragma директивы или <NoWarn> параметра проекта. Если необходимо использовать устаревшие или экспериментальные API и OOXMLXXXX диагностика не отображается как ошибка, можно отключить предупреждение в коде или в файле проекта.

Чтобы отключить предупреждения в коде, выполните следующие действия:

// Disable the warning.
#pragma warning disable OOXML0001

// Code that uses obsolete or experimental API.
//...

// Re-enable the warning.
#pragma warning restore OOXML0001

Чтобы отключить предупреждения в файле проекта, выполните следующие действия:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net6.0</TargetFramework>
   <!-- NoWarn below suppresses SYSLIB0001 project-wide -->
   <NoWarn>$(NoWarn);OOXML0001</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);OOXML0001</NoWarn>
   <NoWarn>$(NoWarn);OTHER_WARNING</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);OOXML0001;OTHER_WARNING</NoWarn>
  </PropertyGroup>
</Project>

Примечание.

Подавление предупреждений таким образом отключает только указанные предупреждения об удалении. Он не отключает другие предупреждения, включая предупреждения об устареваете с различными идентификаторами диагностики.