Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
BinaryFormatter eltávolítás
A .NET 9-től kezdve már nem támogatott az ismert biztonsági kockázatok miatt, BinaryFormatter és api-jai mindig minden projekttípushoz, beleértve az alkalmazásokat isPlatformNotSupportedException.WPF A kockázatokról BinaryFormatter és azok eltávolításának okáról a migrálási BinaryFormatter útmutatóban talál további információt.
Az eltávolítás során BinaryFormattervárhatóan sok WPF alkalmazásra lesz hatással, és a .NET 9-es vagy újabb verziójára való migrálás befejezéséhez lépéseket kell végrehajtania.
A BinaryFormatter hatás WPF
A .NET 9 előtt Windows megjelenítési alaprendszer (WPF) az adatok szerializálására és deszerializálására olyan BinaryFormatter forgatókönyvek esetében, mint a vágólap, a húzás és a betöltés/tárolás állapota a Journalban. A .NET 9-től kezdve a WPF Windows Forms az implementáció egy részhalmazát BinaryFormatter használja belsőleg ezekhez a forgatókönyvekhez. Bár BinaryFormatteraz általános célú szerializálásban/deszerializálásban nem lehet kezelni a kockázatokat, olyan intézkedéseket hoztak, amelyek az ilyen nagyon specifikus használati esetekben ismert típusokkal mérsékelik a kockázatokat. Az ismeretlen vagy nem támogatott típusok esetében továbbra is érvényben van egy visszaesés BinaryFormatter , amely a migrálási lépések végrehajtásának elmaradása esetén jelenik meg PlatformNotSupportedException az alkalmazásban.
WPF És a WinForms-alkalmazások a következő típusokat kezelik, valamint az ilyen típusú tömböket és listákat. A vágólap, a húzás és az Avalon-kötés a Naplóban továbbra is működni fog ezekkel a típusokkal anélkül, hogy migrálási lépésekre lenne szükség.
boolbytechardecimaldoubleintsbytefloat- TimeSpan
- DateTime
uintstringnintnuintlongulongshortushort- PointF
- RectangleF
OLE-forgatókönyvek
Az eltávolítás OLE-forgatókönyvekre, például vágólapra és húzással, valamint migrálási útmutatóra gyakorolt hatásával BinaryFormatter kapcsolatos információkért tekintse meg a Windows Forms és Windows megjelenítési alaprendszer BinaryFormatter OLE útmutatását.
Hivatkozhat arra a függvényre, amelyben tartalékként használtuk BinaryFormatter az objektum olvasásához/mentéséhez a következőt: SaveObjectToHandle és ReadObjectFromHandle OLE-forgatókönyvekhez
Naplózás
Abban az esetben, ha egy állapotot kell tárolni vagy betölteni a navigációs előzmények WPFkezelése közben.
A betöltéshez/mentéshez meghívjuk a LoadSubStreams/ SaveSubStreams osztályt.DataStream Ha a használt elem nem része az új implementáció által kezelt know-típusnak, akkor azt fogja használni BinaryFormatter.
Amikor egy fejlesztő a JournalEntryben NavigateGoForwardnavigál a csomópont adatainak betöltése vagy GoBackmentése egy streambe az állapot mentéséhez. Ha az érintett típust a szerializálás/deszerializálás során nem kezelik belsőleg, BinaryFormatter akkor a rendszer azt használja.
Hiv: DataStream.cs
Kompatibilitási kerülő megoldás (nem ajánlott)
Azok a .NET 9-felhasználók, akik nem tudnak távolról áttelepülni BinaryFormatter , nem támogatott kompatibilitási csomagot telepíthetnek. További információ: BinaryFormatter Migrálási útmutató: Kompatibilitási csomag.
Figyelemfelhívás
BinaryFormatter veszélyes, és nem ajánlott, mivel olyan támadások esetén veszélyezteti az alkalmazások használatát, mint a szolgáltatásmegtagadás (DoS), az információk felfedése vagy a távoli kódfuttatás. A kockázatokkal BinaryFormatter kapcsolatos további információkért lásd a deszerializálási kockázatokat a BinaryFormatter használatban és a kapcsolódó típusokban.
Problémák
Ha váratlan problémákat tapasztal az WPF alkalmazással BinaryFormatter kapcsolatban, jelentsen egy problémát a dotnet/wpf/issues címen, és jelezze, hogy a probléma a BinaryFormatter törlésével kapcsolatos.