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