Dela via


Windows Forms och Windows Presentation FoundationBinaryFormatterOLE vägledning

Det här dokumentet beskriver vilka effekter borttagningen BinaryFormatter har på OLE scenarier i Windows Forms och Windows Presentation Foundation (WPF). Information om effekterna av BinaryFormatter borttagning i allmänhet finns Windows Forms i Windows Forms migreringsguiden för BinaryFormatter. Information om effekterna av BinaryFormatter borttagning i allmänhet finns WPF i WPF migreringsguiden för BinaryFormatter.

BinaryFormatter i OLE scenarier

Urklipp

Alla standarddataformat OLE i System.Windows.Forms.DataFormats och System.Windows.DataFormats går inte igenom BinaryFormatter, förutom DataFormats.Serializable och alla anpassade format. Om du använder DataFormats.Serializable eller ett anpassat format BinaryFormatter används om urklippsscenariot omfattar en typ som inte hanteras i sig enligt beskrivningen iWindows Forms migreringsguiden för BinaryFormatteroch WPF Migreringsguiden – binär formatering. BinaryFormatter I synnerhet används när System.Windows.Forms.Clipboard.SetData eller System.Windows.Clipboard.SetData anropas med din typ och när System.Windows.Forms.Clipboard.GetData eller System.Windows.Clipboard.GetData anropas för att hämta din typ. BinaryFormatter används också om System.Windows.Forms.Clipboard.SetDataObject eller System.Windows.Clipboard.SetDataObject anropas. Med borttagningen BinaryFormatter ser du inget undantag när du ställer in data i Urklipp om BinaryFormatter det behövs. I stället ser du en sträng om BinaryFormatter att tas bort när du försöker få den typ som inte hanteras i sig från Urklipp.

Dra och släpp-funktion

Om ditt dra och släpp-scenario omfattar typer som inte hanteras i sig under serialisering och deserialisering BinaryFormatter , används när System.Windows.Forms.Control.DoDragDrop eller System.Windows.DragDrop.DoDragDrop anropas och data har dragits ur processen. BinaryFormatter används också när System.Windows.Forms.DataObject.GetData eller System.Windows.DataObject.GetData anropas för att hämta data som kommer från en annan process om typen inte hanteras i sig. Med borttagningen BinaryFormatter ser du nu en sträng om BinaryFormatter att tas bort när du försöker hämta data som har sitt ursprung från en annan process för typer som inte hanteras i sig.

Migrera bort från BinaryFormatter

Urklipp och dra och släpp

För typer som inte hanteras i sig och som används i Urklipp och dra och släpp-åtgärder rekommenderar vi att du formaterar dessa typer som en byte[] eller string nyttolast innan du skickar data till Urklipp eller dra och släpp-API:er. Att använda JSON är ett sätt att uppnå detta. Du måste göra justeringar för att hantera mottagandet av en JSON-formaterad typ som liknar justeringar som gjorts för att placera JSON-formaterade typer i Urklipp eller dra och släpp-åtgärder. Mer information om hur du serialiserar och deserialiserar typen med JSON finns i Skriva .NET-objekt som JSON (serialisera).

Problem

Om du upplever ett oväntat beteende med din Windows Forms eller din app när det gäller BinaryFormatter serialisering eller deserialisering kan du ange ett problem på github.com/dotnet/winforms respektive github.com/dotnet/wpfWPF.