From 01c5946228904d4e2f142d5c90668e6fcf578b31 Mon Sep 17 00:00:00 2001 From: Rosario Pulella Date: Tue, 15 Jun 2021 16:25:28 -0400 Subject: [PATCH] IObjectSerializer fix examples. Change exmaples to reflect the change in the interface. Serializes to and from objects instead of strings. --- docs/helpers/ObjectSerializer.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/helpers/ObjectSerializer.md b/docs/helpers/ObjectSerializer.md index a6ff53883..5de330736 100644 --- a/docs/helpers/ObjectSerializer.md +++ b/docs/helpers/ObjectSerializer.md @@ -16,8 +16,8 @@ You should implement IObjectSerializer when you need to write data using this to | Methods | Return Type | Description | |---------|-------------|-------------| -| Serialize\(T) | string | Serialize an object of type T into a string. | -| Deserialize\(string) | T | Deserialize a string to an object of type T. | +| Serialize\(T) | object | Serialize an object of type T into a object. | +| Deserialize\(object) | T | Deserialize a object to an object of type T. | ## Examples @@ -33,7 +33,7 @@ namespace Contoso.Helpers { public object Serialize(T value) => JsonSerializer.Serialize(value); - public T Deserialize(object value) => JsonSerializer.Deserialize(value.ToString()); + public T Deserialize(object value) => JsonSerializer.Deserialize((string)value); } } ``` @@ -51,9 +51,9 @@ namespace Contoso.Helpers // Specify your serialization settings private readonly JsonSerializerSettings settings = new JsonSerializerSettings(); - public string Serialize(T value) => JsonConvert.SerializeObject(value, typeof(T), Formatting.Indented, settings); + public object Serialize(T value) => JsonConvert.SerializeObject(value, typeof(T), Formatting.Indented , settings); - public T Deserialize(string value) => JsonConvert.DeserializeObject(value, settings); + public T Deserialize(object value) => JsonConvert.DeserializeObject((string)value, settings); } } ``` @@ -61,6 +61,7 @@ namespace Contoso.Helpers ### DataContract ```csharp +using Microsoft.Toolkit.Uwp.Helpers; using System.IO; using System.Runtime.Serialization; using System.Xml; @@ -72,7 +73,7 @@ namespace Contoso.Helpers // Specify your serialization settings private readonly DataContractSerializerSettings settings = new DataContractSerializerSettings(); - public string Serialize(T value) + public object Serialize(T value) { var serializer = new DataContractSerializer(typeof(T), settings); @@ -84,14 +85,14 @@ namespace Contoso.Helpers } } - public T Deserialize(string value) + public T Deserialize(object value) { var serializer = new DataContractSerializer(typeof(T), settings); - using (var stringReader = new StringReader(value)) + using (var stringReader = new StringReader((string)value)) using (var xmlReader = XmlReader.Create(stringReader)) { - return serializer.ReadObject(xmlReader) as T; + return (T)serializer.ReadObject(xmlReader); } } }