Windows Forms a Windows Presentation FoundationBinaryFormatterOLE pokyny
Tento dokument popisuje účinky BinaryFormatter odebrání ve OLE scénářích a Windows Forms Windows Presentation Foundation (WPF). Informace o vlivu BinaryFormatter odebrání obecně Windows Forms naleznete Windows Forms v průvodci migrací pro BinaryFormatter. Informace o vlivu BinaryFormatter odebrání obecně WPF naleznete WPF v průvodci migrací pro BinaryFormatter.
BinaryFormatter ve OLE scénářích
Schránka
Všechny standardní OLE datové formáty v System.Windows.Forms.DataFormats
a System.Windows.DataFormats
neprocházejí , BinaryFormatters výjimkou DataFormats.Serializable
a žádný vlastní formát. Pokud používáte DataFormats.Serializable
nebo používáte vlastní formát, použije se v případě, že váš scénář schránky zahrnuje typ, BinaryFormatter který není vnitřně zpracován, jak je popsáno vWindows Forms průvodci migrací a BinaryFormatterWPF Průvodce migrací – Binární formátovací modul. Zejména se používá, BinaryFormatter když System.Windows.Forms.Clipboard.SetData nebo System.Windows.Clipboard.SetData je volána s vaším typem a kdy System.Windows.Forms.Clipboard.GetData nebo System.Windows.Clipboard.GetData je volána k získání typu. BinaryFormatter se používá také v případě, že System.Windows.Forms.Clipboard.SetDataObject je volána nebo System.Windows.Clipboard.SetDataObject volána. BinaryFormatter Při odebrání se při nastavování dat ve schránce v případě BinaryFormatter potřeby nezobrazí výjimka. Místo toho uvidíte řetězec, BinaryFormatter který se odebere, když se pokusíte získat typ, který není vnitřně zpracován ze schránky.
Funkce přetažení
Pokud váš scénář přetažení zahrnuje typy, které nejsou vnitřně zpracovány během serializace a deserializace, BinaryFormatter je použita při System.Windows.Forms.Control.DoDragDrop nebo System.Windows.DragDrop.DoDragDrop je volána a data byla přetažena mimo proces. BinaryFormatter se používá také v případě, že System.Windows.Forms.DataObject.GetData je volána nebo System.Windows.DataObject.GetData volána k načtení dat pocházejících z jiného procesu, pokud typ není vnitřně zpracován. BinaryFormatter Při odebrání se teď při pokusu o načtení dat pocházejících z jiného procesu pro typy, které nejsou vnitřně zpracovávány, zobrazí řetězecBinaryFormatter, který se odebere.
Migrace mimo BinaryFormatter
Schránka a přetažení
U typů, které nejsou vnitřně zpracovány, které se používají ve schránce a operacích přetažení myší, doporučujeme tyto typy naformátovat jako datovou byte[]
string
část před předáním dat do schránky nebo přetahováním rozhraní API. Použití JSON je jedním ze způsobů, jak toho dosáhnout. Budete muset upravit zpracování příjmu typu ve formátu JSON podobnému úpravám pro umístění typů formátovaných ve formátu JSON do schránky nebo operací přetažení. Další informace o serializaci a deserializaci typu pomocí JSON naleznete v tématu Jak psát objekty .NET jako JSON (serializace).
Problémy
Pokud u své Windows Forms nebo aplikace dochází k neočekávanému chování při BinaryFormatter serializaci nebo deserializaci, vytvořte problém v github.com/dotnet/winforms nebo github.com/dotnet/wpf.WPF