public static void RESTORE_FROM_JSON(string file, out TargetManagerDataModel targets, ToolsNavigationDataModel <LayoutDocument> navigation, out ToolLayout dockingLayout, out List <LayoutDocument> floatingLayout) { targets = null; dockingLayout = null; floatingLayout = null; ReadOnlySpan <byte> fs = File.ReadAllBytes(file); if (fs.StartsWith(__utf8_bom)) { fs = fs.Slice(__utf8_bom.Length); } var reader = new Utf8JsonReader(fs, new JsonReaderOptions() { CommentHandling = JsonCommentHandling.Skip }); try { while (reader.Read()) { switch (reader.TokenType, reader.CurrentDepth) { case (JsonTokenType.PropertyName, 1): switch (reader.GetString()) { case "Targets": TargetManagerDataModel.RESTORE_FROM_JSON(ref reader, out targets); break; case "Docking": dockingLayout = navigation.ImportDockingToolboxFromJSON(ref reader, fs); break; case "Floating": floatingLayout = navigation.ImportFloatingToolboxFromJSON(ref reader, fs); break; } break;