0

私は次のJSONを持っています:

{
"Texture": "Sprites\\wall.png",
"Rect": null,
"Rotation": 0,
"Hitbox": [-25, -25, 50, 50],
"PositionChange": [0, 0]
}

このクラスに逆シリアル化しようとしているもの:

class SimpleEntityFrame
{
    [JsonConverter(typeof(TextureConverter))]
    public Texture Texture { get; private set; }

    [JsonConverter(typeof(IntRectConverter))]
    public IntRect? Rect { get; private set; }

    public float Rotation { get; private set; }

    [JsonConverter(typeof(FloatRectConverter))]
    public FloatRect? Hitbox { get; private set; }

    [JsonConverter(typeof(Vector2fConverter))]
    public Vector2f PositionChange { get; private set; }
}

そのようです:

var simpleEntityFrames = JsonConvert.DeserializeObject<SimpleEntityFrame>(File.ReadAllText("Data\\SimpleEntities.json"));

ただし、これを行うと、SimpleEntityFrame が既定の状態に戻ります。すべての参照メンバーが null に設定され、すべての値メンバーがゼロに設定されます。私が使用している CustomCreationConverters は、別のクラスに逆シリアル化するためにも使用しているため、正常に動作することを知っています。SimpleEntityFrame クラスの CustomCreationConverter を作成することでこれを解決できることはわかっていますが、この場合になぜこれが必要なのかわかりません。私は何が欠けていますか?

4

0 に答える 0