SYSLIB0018 : Le chargement en réflexion uniquement n’est pas pris en charge et lève PlatformNotSupportedException
Les méthodes suivantes sont marquées comme obsolètes à compter de .NET 6. Lorsqu’elles sont utilisées dans le code, elles génèrent un avertissement SYSLIB0018
au moment de la compilation. Ces méthodes lèvent une PlatformNotSupportedException à l’exécution.
- Assembly.ReflectionOnlyLoad
- Assembly.ReflectionOnlyLoadFrom(String)
- Type.ReflectionOnlyGetType(String, Boolean, Boolean)
Solutions de contournement
Le chargement par réflexion uniquement est remplacé par le contexte de chargement des métadonnées dans .NET Core et .NET 5 (et versions ultérieures). Pour plus d’informations, consultez Guide pratique pour inspecter le contenu de l’assembly à l’aide de MetadataLoadContext.
Supprimer un avertissement
Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.
Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.
// Disable the warning.
#pragma warning disable SYSLIB0018
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0018
Pour supprimer tous les avertissements SYSLIB0018
dans votre projet, ajoutez une propriété <NoWarn>
à votre fichier projet.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0018</NoWarn>
</PropertyGroup>
</Project>
Pour plus d’informations, consultez Supprimer des avertissements.