SYSLIB0018. Загрузка только в контексте отражения не поддерживается и выдает исключение PlatformNotSupportedException
Следующие методы помечены как устаревшие начиная с версии .NET 6. При вызове их в коде выдается предупреждение SYSLIB0018
во время компиляции. Эти методы выдают исключение PlatformNotSupportedException во время выполнения.
- Assembly.ReflectionOnlyLoad
- Assembly.ReflectionOnlyLoadFrom(String)
- Type.ReflectionOnlyGetType(String, Boolean, Boolean)
Методы обхода проблемы
загрузка только Рефлексия ion заменяется контекстом загрузки метаданных в .NET Core и .NET 5+. Дополнительные сведения см. в разделе "Практическое руководство. Проверка содержимого сборки с помощью MetadataLoadContext".
Отключение предупреждений
Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.
Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.
// Disable the warning.
#pragma warning disable SYSLIB0018
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0018
Чтобы отключить все SYSLIB0018
предупреждения в проекте, добавьте <NoWarn>
свойство в файл проекта.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0018</NoWarn>
</PropertyGroup>
</Project>
Дополнительные сведения см. в разделе Отключение предупреждений.