コード例 #1
0
        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);
        }