SYSLIB0018: Auf Reflexion beschränktes Laden wird nicht unterstützt und löst „PlatformNotSupportedException“ aus
Die folgenden Methoden sind ab .NET 6 als veraltet gekennzeichnet. Wenn Sie diese im Code aufrufen, wird zur Kompilierzeit die Warnung SYSLIB0018
ausgelöst. Diese Methode löst zur Laufzeit die Ausnahme PlatformNotSupportedException aus.
- Assembly.ReflectionOnlyLoad
- Assembly.ReflectionOnlyLoadFrom(String)
- Type.ReflectionOnlyGetType(String, Boolean, Boolean)
Problemumgehung
Reines Reflexionsladen wird in .NET Core und .NET 5 und höher durch den Metadatenladekontext ersetzt. Weitere Informationen finden Sie unter Überprüfen von Assemblyinhalten mithilfe von MetadataLoadContext.
Unterdrücken einer Warnung
Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung im Code oder in Ihrer Projektdatei unterdrücken.
Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Warnung zu deaktivieren und dann wieder zu aktivieren.
// Disable the warning.
#pragma warning disable SYSLIB0018
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0018
Um alle SYSLIB0018
-Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn>
-Eigenschaft hinzu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0018</NoWarn>
</PropertyGroup>
</Project>
Weitere Informationen finden Sie unter Unterdrücken von Warnungen.