0

カスタム Newtonsoft Jsonconverter を使用して Json に書き込まれるオブジェクトがあります。オブジェクトには 2 つの変数 (vec3 ポイントの配列と三角形インデックスの配列) があります。値は、json 内に base64 文字列として保存する必要があります。

ライターは期待どおりに動作しますが、データを読み込んでオブジェクトを再作成する方法がわかりません。

オブジェクト クラスの定義:

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);
        }
    }
}

どんな助けでも大歓迎です、私はこれに何時間も立ち往生しています。

4

1 に答える 1