私は次の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 を作成することでこれを解決できることはわかっていますが、この場合になぜこれが必要なのかわかりません。私は何が欠けていますか?