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