示例#1
0
文件: Parser.cs 项目: MasterQ32/Solid
        private string ReadAttributeValue(TextReader reader, out MarkupPropertyType type)
        {
            var r = reader.Peek();

            if (r == -1)
            {
                throw new EndOfStreamException();
            }

            if (char.IsDigit((char)r) || (r == '-'))
            {
                type = MarkupPropertyType.Number;
                return(ReadNumber(reader));
            }
            else if (r == '\"')
            {
                type = MarkupPropertyType.String;
                return(ReadString(reader));
            }
            else if (r == '[')
            {
                if (reader.Read() != '[')
                {
                    throw new InvalidDataException("Expected '['");
                }
                type = MarkupPropertyType.Binding;
                var result = ReadAttributeIdentifier(reader);
                if (reader.Read() != ']')
                {
                    throw new InvalidDataException("Expected ']'");
                }
                return(result);
            }
            else
            {
                type = MarkupPropertyType.Enumeration;
                return(ReadAttributeIdentifier(reader));
            }
        }
示例#2
0
 public MarkupProperty(string name, MarkupPropertyType type, string value)
 {
     this.Name  = name;
     this.Type  = type;
     this.Value = value;
 }