У меня есть объект, который записывается в Json с помощью пользовательского Newtonsoft Jsonconverter. Объект имеет две переменные (массив точек vec3 и массив треугольников). Значения должны храниться в виде строк base64 внутри json.
. Писатель работает, как и ожидалось, но я не могу понять, как считать данные обратно и воссоздать объект.
Определение класса объекта:
public class Outline
{
[JsonConverter(typeof(ObjectToBase64Converter))]
public vec3[] Points { get; set; }
[JsonConverter(typeof(ObjectToBase64Converter))]
public int[] TriangleIndices { get; set; }
}
Пользовательский Json конвертер:
internal class ObjectToBase64Converter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(string);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
// ?? I've got no clue ??
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
using (MemoryStream memoryStream = new MemoryStream())
{
new BinaryFormatter().Serialize(memoryStream, value);
string base64String = Convert.ToBase64String(memoryStream.ToArray());
writer.WriteValue(base64String);
}
}
}
Любая помощь будет принята с благодарностью Я застрял на этом часами.