我有以下 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 来解决这个问题,但我不明白为什么在这种情况下这应该是必要的。我错过了什么?