/// <summary> /// Преобразует строковое представление json ответа в эквивалентный ему класс <see cref="UserPublicInformation"/>. Возвращает значение, указывающее, успешно ли выполнено преобразование. /// </summary> /// <param name="s">Строка, содержащая преобразуемый json ответ.</param> /// <param name="result">При возвращении этим методом содержиткласс <see cref="UserPublicInformation"/>, эквивалентный json ответу, содержащемуся в параметре s, если преобразование выполнено успешно, или null, если оно завершилось сбоем. Преобразование завершается сбоем, если параметр s равен null или <see cref="System.String.Empty"/> или не находится в правильном формате. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в объекте result, будет перезаписано.</param> /// <returns>Значение true, если параметр s успешно преобразован; в противном случае — значение false.</returns> public static bool TryParse(string s, out UserPublicInformation result) { try { result = Parse(s); return(true); } catch { result = null; return(false); } }
internal Resource(JsonTextReader jsonReader) { int depth = jsonReader.Depth; while (jsonReader.Read()) { switch (jsonReader.TokenType) { case JsonToken.PropertyName: switch (jsonReader.Value.ToString()) { case "public_key": publicKey = jsonReader.ReadAsString(); break; case "_embedded": embedded = new ResourceList(jsonReader); break; case "name": name = jsonReader.ReadAsString(); break; case "created": created = jsonReader.ReadAsDateTime().Value; break; case "custom_properties": IDictionary <string, string> customProperties = new Dictionary <string, string>(); int depth2 = jsonReader.Depth; while (jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName) { customProperties.Add(jsonReader.Value.ToString(), jsonReader.ReadAsString()); } else if (jsonReader.TokenType == JsonToken.EndObject) { if (jsonReader.Depth == depth2) { break; } } } customProperties = new ReadOnlyDictionary <string, string>(customProperties); break; case "public_url": publicUrl = new Uri(jsonReader.ReadAsString()); break; case "origin_path": originPath = jsonReader.ReadAsString(); break; case "modified": modified = jsonReader.ReadAsDateTime().Value; break; case "path": path = jsonReader.ReadAsString(); break; case "md5": md5 = jsonReader.ReadAsString(); break; case "type": type = jsonReader.ReadAsString() == "file" ? Type.file : Type.dir; break; case "mime_type": mimeType = jsonReader.ReadAsString(); break; case "size": size = long.Parse(jsonReader.ReadAsString()); break; case "sha256": sha256 = jsonReader.ReadAsString(); break; case "revision": revision = long.Parse(jsonReader.ReadAsString()); break; case "media_type": mediaType = jsonReader.ReadAsString(); break; case "preview": preview = new Uri(jsonReader.ReadAsString()); break; case "resource_id": resourceId = jsonReader.ReadAsString(); break; case "comment_ids": commentIds = new CommentIds(jsonReader); break; case "share": share = new ShareInfo(jsonReader); break; case "views_count": viewsCount = jsonReader.ReadAsInt32(); break; case "owner": owner = new UserPublicInformation(jsonReader); break; } break; case JsonToken.EndObject: if (jsonReader.Depth == depth) { return; } break; } } }