Compartilhar via


ObjectSerializer (Arquivado)

Aviso

Esse componente foi arquivado e não está disponível na versão atual do Kit de Ferramentas da Comunidade do Windows.

Embora não haja planos imediatos para portar esse componente para o 8.x, a comunidade é bem-vinda para expressar interesse ou contribuir para sua inclusão.

Para obter mais informações:

A documentação original segue abaixo.


Você deve implementar o IObjectSerializer quando precisar escrever dados usando os auxiliares desse kit de ferramentas com um serializador personalizado. Se você não fizer isso, um serializador JSON padrão será usado.

Methods

Methods Tipo de retorno Description
Serializar<T>(T) objeto Serialize um objeto do tipo T em um objeto.
Desserializar<T>(objeto) T Desserializar um objeto para um objeto do tipo T.

Exemplos

System.Text.Json

using Microsoft.Toolkit.Uwp.Helpers;
using System.Text.Json;

namespace Contoso.Helpers
{
    public class SystemTextJsonObjectSerializer : IObjectSerializer
    {
        public object Serialize<T>(T value) => JsonSerializer.Serialize(value);

        public T Deserialize<T>(object value) => JsonSerializer.Deserialize<T>((string)value);
    }
}

Json.NET

using Microsoft.Toolkit.Uwp.Helpers;
using Newtonsoft.Json;

namespace Contoso.Helpers
{
    public class JsonNetObjectSerializer : IObjectSerializer
    {
        // Specify your serialization settings
        private readonly JsonSerializerSettings settings = new JsonSerializerSettings();

        public object Serialize<T>(T value) => JsonConvert.SerializeObject(value, typeof(T), Formatting.Indented , settings);

        public T Deserialize<T>(object value) => JsonConvert.DeserializeObject<T>((string)value, settings);
    }
}

Datacontract

using Microsoft.Toolkit.Uwp.Helpers;
using System.IO;
using System.Runtime.Serialization;
using System.Xml;

namespace Contoso.Helpers
{
    public class DataContractObjectSerializer : IObjectSerializer
    {
        // Specify your serialization settings
        private readonly DataContractSerializerSettings settings = new DataContractSerializerSettings();

        public object Serialize<T>(T value)
        {
            var serializer = new DataContractSerializer(typeof(T), settings);

            using (var stringWriter = new StringWriter())
            using (var xmlWriter = XmlWriter.Create(stringWriter))
            {
                serializer.WriteObject(xmlWriter, value);
                return stringWriter.ToString();
            }
        }

        public T Deserialize<T>(object value)
        {
            var serializer = new DataContractSerializer(typeof(T), settings);

            using (var stringReader = new StringReader((string)value))
            using (var xmlReader = XmlReader.Create(stringReader))
            {
                return (T)serializer.ReadObject(xmlReader);
            }
        }
    }
}

Requirements

Família de dispositivos Universal, 10.0.16299.0 ou superior
Namespace Microsoft.Toolkit.Uwp
Pacote NuGet Microsoft.Toolkit.Uwp

API