public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { // A JSON object is an unordered set of name/value pairs so the converter should handle // the X and Y properties in any order. var dto = serializer.Deserialize<Vector2DTO>(reader); if (dto == null) return null; return new Vector2(dto.X, dto.Y); }