public bool ReadYaml(YamlReader reader) { var id = reader.PeekMap(); if (!id.HasValue) { return(false); } var key = id.Value.Key; if (!key.Equals("ID", StringComparison.Ordinal)) { if (key.Equals("Languages", StringComparison.Ordinal) || key.Equals("Language", StringComparison.Ordinal) || key.Equals("Version", StringComparison.Ordinal) || key.Equals("Versions", StringComparison.Ordinal)) { return(false); } throw new FormatException(reader.CreateErrorMessage("Cannot read field value. Expected 'ID' map, found '" + id.Value.Key + "' instead.")); } Id = reader.ReadExpectedGuidMap("ID"); var hint = reader.PeekMap(); if (hint.HasValue && hint.Value.Key.Equals("Hint")) { NameHint = reader.ReadExpectedMap("Hint"); } var blob = reader.PeekMap(); if (blob.HasValue && blob.Value.Key.Equals("BlobID")) { BlobId = reader.ReadExpectedGuidMap("BlobID"); } var type = reader.PeekMap(); if (type.HasValue && type.Value.Key.Equals("Type")) { reader.ReadMap(); Type = type.Value.Value; } Value = reader.ReadExpectedMap("Value"); return(true); }