How to serialize and de-serialize the string in WinForms Control?
In AppStateSerializer, you can serialize and de-serialize string in XMLFmtStream SerializationMode by using the following steps in WinForms.
- Format the String value in UTF8Encoding format.
- Serialize the string through stream, so the position of the stream is at the end after serialization.
- For proper de-serialization process, reset the stream position to 0.
The following code example illustrates the same.
C#
//Serialization using (var stream = new MemoryStream()) { var state2 = new Syncfusion.Runtime.Serialization.AppStateSerializer(SerializeMode.XMLFmtStream, stream); state2.SerializeObject("hi", "test1"); state2.PersistNow(); byte[] byteArray = stream.GetBuffer(); UTF8Encoding utf8 = new UTF8Encoding(); text = utf8.GetString(byteArray); } //Deserialization using (var stream = new MemoryStream()) { using (var writer = new StreamWriter(stream)) { byte[] bArray = new UTF8Encoding(true).GetBytes(text); stream.Write(bArray, 0, bArray.Length); //When AppStateSerializer reads the position, being at end. //To set the stream position to 0 to load correctly stream.Position = 0; var state2 = new Syncfusion.Runtime.Serialization.AppStateSerializer(SerializeMode.XMLFmtStream, stream); var deserializeObject = state2.DeserializeObject("hi"); MessageBox.Show(deserializeObject as String, "Found in Memory Stream"); } }
VB
'Serialization Using stream = New MemoryStream() Dim state2 = New Syncfusion.Runtime.Serialization.AppStateSerializer(SerializeMode.XMLFmtStream, stream) state2.SerializeObject("hi", "test1") state2.PersistNow() Dim byteArray() As Byte = stream.GetBuffer() Dim utf8 As New UTF8Encoding() text = utf8.GetString(byteArray) End Using 'Deserialization Using stream = New MemoryStream() Using writer = New StreamWriter(stream) Dim bArray() As Byte = New UTF8Encoding(True).GetBytes(text) stream.Write(bArray, 0, bArray.Length) 'When AppStateSerializer reads the position, being at end. 'To set the stream position to 0 to load correctly stream.Position = 0 Dim state2 = New Syncfusion.Runtime.Serialization.AppStateSerializer(SerializeMode.XMLFmtStream, stream) Dim deserializeObject = state2.DeserializeObject("hi") MessageBox.Show(TryCast(deserializeObject, String), "Found in Memory Stream") End Using End Using
Sample:
https://www.syncfusion.com/downloads/support/directtrac/general/AppStateSerializer-1567828321.zip
I hope you enjoyed learning on how to serialize and de-serialize the string using XMLFmtStream SerializeMode in AppStateSerializer.
You can refer to our WinForms feature tour page to know about its other groundbreaking feature representations. You can also explore our documentation to understand how to present and manipulate data.
For
current customers, you can check out our WinForms and other WinForms components
from the License
and Downloads page. If you are new to Syncfusion, you can try our
30-day free trial to
check out our WPF
other components.
If you have any queries or require clarifications, please let us know in comments below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!