Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az UTF-7 kódolás már nem széles körben használható az alkalmazások körében, és számos specifikáció tiltja a használatot a felcserélésben. Időnként támadási vektorként is használják olyan alkalmazásokban, amelyek nem számítanak az UTF-7 kódolású adatokkal való találkozásra. A Microsoft óva int a System.Text.UTF7Encoding használattól, mert nem biztosít hibaészlelést.
Ezért a következő API-k elavultnak vannak megjelölve, kezdve a .NET 5-tel. Ezeknek az API-knak a használata figyelmeztetést SYSLIB0001 generál fordításkor.
- Encoding.UTF7 Tulajdonság
- UTF7Encoding Konstruktorok
Kerülő megoldások
Ha saját protokollt vagy UTF7Encoding fájlformátumot használ vagy használEncoding.UTF7:
Váltás a következőre: használat Encoding.UTF8 vagy UTF8Encoding. Az UTF-8 iparági szabvány, és széles körben támogatott nyelvek, operációs rendszerek és futtatókörnyezetek között. Az UTF-8 használata megkönnyíti a kód későbbi karbantartását, és az ökoszisztéma többi részével való együttműködését teszi lehetővé.
Ha összehasonlít egy példányt Encoding a következőval Encoding.UTF7:
Ehelyett érdemes lehet ellenőrizni a jól ismert UTF-7 kódlapot, amely a
65000. Ha összehasonlítja a kódlapot, elkerülheti a figyelmeztetést, és bizonyos peremes eseteket is kezelhet, például ha valaki meghívtanew UTF7Encoding()vagy alosztályozza a típust.void DoSomething(Encoding enc) { // Don't perform the check this way. // It produces a warning and misses some edge cases. if (enc == Encoding.UTF7) { // Encoding is UTF-7. } // Instead, perform the check this way. if (enc != null && enc.CodePage == 65000) { // Encoding is UTF-7. } }
Figyelmeztetés mellőzése
Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
Ha el szeretné tiltani a SYSLIB0001 projekt összes figyelmeztetését, adjon hozzá egy tulajdonságot <NoWarn> a projektfájlhoz.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
</PropertyGroup>
</Project>
További információ: Figyelmeztetések mellőzése.