SYSLIB0018: il caricamento di sola reflection non è supportato e genera PlatformNotSupportedException
I metodi seguenti sono contrassegnati come obsoleti, a partire da .NET 6. La loro chiamata nel codice genera un avviso SYSLIB0018
in fase di compilazione. Questi metodi generano un PlatformNotSupportedException in fase di esecuzione.
- Assembly.ReflectionOnlyLoad
- Assembly.ReflectionOnlyLoadFrom(String)
- Type.ReflectionOnlyGetType(String, Boolean, Boolean)
Soluzioni alternative
Il caricamento di sola reflection viene sostituito dal contesto di caricamento dei metadati in .NET Core e .NET 5+. Per altre informazioni, vedere Procedura: Esaminare il contenuto dell'assembly usando MetadataLoadContext.
Eliminare un avviso
Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.
Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.
// Disable the warning.
#pragma warning disable SYSLIB0018
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0018
Per eliminare tutti gli avvisi SYSLIB0018
nel progetto, aggiungere una proprietà <NoWarn>
al file di progetto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0018</NoWarn>
</PropertyGroup>
</Project>
Per altre informazioni, vedere Eliminare gli avvisi.