Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Następujące System.Security.Cryptography metody są przestarzałe, począwszy od platformy .NET 7. Użycie ich w kodzie generuje ostrzeżenie SYSLIB0045 w czasie kompilacji. Każda z tych metod fabryki akceptuje argument ciągu reprezentujący nazwę algorytmu. Metody te powodują wywołanie CryptoConfig.CreateFromName i rzutowanie wyniku na typ zwracany.
- Aes.Create(String)
- AsymmetricAlgorithm.Create(String)
- DES.Create(String)
- ECDiffieHellman.Create(String)
- ECDsa.Create(String)
- HashAlgorithm.Create(String)
- KeyedHashAlgorithm.Create(String)
- RandomNumberGenerator.Create(String)
- RC2.Create(String)
- Rijndael.Create(String)
- RSA.Create(String)
- SHA1.Create(String)
- SHA256.Create(String)
- SHA384.Create(String)
- SHA512.Create(String)
- SymmetricAlgorithm.Create(String)
- TripleDES.Create(String)
Te metody zostały oznaczone [Obsolete] , ponieważ w przyciętych aplikacjach mogą one zwracać null , gdy nie będą znajdować się w aplikacjach nieprzyciętych. Ponadto w aplikacjach nieprzyciętych zachowania oparte na wyjątkach tych metod od czasu do czasu zaskakuje wywołujących, a wiele znanych identyfikatorów jest skojarzonych z typami, które same są oznaczone jako [Obsolete].
Rozwiązanie
Wywołania, które przekazują ciąg stały, należy zmienić na metodę fabryki bez parametrów lub silne wywołanie w celu utworzenia odpowiedniego typu. Na przykład wywołanie metody można zastąpić Aes.Create("AES") ciągiem Aes.Create() lub new AesCryptoServiceProvider(). AesCryptoServiceProvider Ponieważ typ jest również oznaczony [Obsolete], Aes.Create() jest preferowanym zastąpieniem.
Wywołania, które przekazują ciąg inny niż stały, mogą używać własnej tabeli odnośników lub zostać zmienione w celu bezpośredniego wywołania CryptoConfig.CreateFromName .
Pomijanie ostrzeżenia
Jeśli musisz używać przestarzałych interfejsów API, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
// Disable the warning.
#pragma warning disable SYSLIB0045
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0045
Aby pominąć wszystkie SYSLIB0045 ostrzeżenia w projekcie, dodaj <NoWarn> właściwość do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0045</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.