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)); } }
public MarkupProperty(string name, MarkupPropertyType type, string value) { this.Name = name; this.Type = type; this.Value = value; }