Delen via


SYSLIB0045: Sommige cryptografische factorymethoden zijn verouderd

De volgende System.Security.Cryptography methoden zijn verouderd, te beginnen in .NET 7. Als u ze in code gebruikt, wordt er een waarschuwing SYSLIB0045 gegenereerd tijdens het compileren. Elk van deze factorymethoden accepteert een tekenreeksargument dat de naam van het algoritme vertegenwoordigt. Met deze methoden wordt het resultaat aangeroepen CryptoConfig.CreateFromName en gecast naar het retourtype.

Deze methoden zijn gemarkeerd [Obsolete] omdat ze in bijgesneden toepassingen kunnen retourneren wanneer ze niet in niet-ingekorte toepassingen zouden worden geretourneerd null . In niet-bijgesneden toepassingen worden ook het gedrag op basis van uitzonderingen van deze methoden af en toe verrast bellers en veel bekende id's zijn gekoppeld aan typen die zelf zijn gemarkeerd [Obsolete].

Tijdelijke oplossing

Aanroepen die een constante tekenreeks doorgeven, moeten worden gewijzigd in de parameterloze factorymethode of een sterke aanroep om het juiste type te maken. U kunt bijvoorbeeld een aanroep Aes.Create("AES") vervangen door Aes.Create() een van beide of new AesCryptoServiceProvider(). Omdat het AesCryptoServiceProvider type ook is gemarkeerd [Obsolete], Aes.Create() is dit de voorkeursvervanging.

Aanroepen die een niet-constante tekenreeks doorgeven, kunnen hun eigen opzoektabel gebruiken of worden gewijzigd om rechtstreeks aan te roepen CryptoConfig.CreateFromName .

Een waarschuwing onderdrukken

Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.

// Disable the warning.
#pragma warning disable SYSLIB0045

// Code that uses obsolete API.
// ...

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

Als u alle SYSLIB0045 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0045</NoWarn>
  </PropertyGroup>
</Project>

Zie Waarschuwingen onderdrukken voor meer informatie.