CSharp · Console
using System;
using System.Text.Json;
public class Program
{
public static void Main()
{
// Start with any class
var myObject = new int[] { 0, 1, 2 };
// Need serialization? Just wrap it
var serializable = myObject.AsSerializable();
// Serialize it
string serialized = serializable.Serialize();
Console.WriteLine(serialized);
// Deserialize when needed
var deserialized = serializable.Deserialize(serialized);
Console.WriteLine(string.Join(' ', deserialized));
}
}
public interface ISerialize<T>
{
string Serialize();
T Deserialize(string seralizeString);
}
public class SerializeWrapper<T> : ISerialize<T> where T : class
{
public T Value { get; private set; }
public SerializeWrapper(T value)
{
Value = value; //value is the initial object T
}
public string Serialize()
{
return JsonSerializer.Serialize(Value);
}
public T Deserialize(string serializeString)
{
return JsonSerializer.Deserialize<T>(serializeString);
}
}
public static class SerializeExtensions
{
public static SerializeWrapper<T> AsSerializable<T>(this T obj) where T : class
{
return new SerializeWrapper<T>(obj);
}
}