public object ParseReader (TextReader stream) { reader = XmlReader.Create (stream); while (reader.Read ()) { switch (reader.NodeType) { case XmlNodeType.Element: ParseElement (); break; case XmlNodeType.EndElement: ParseEndElement (); break; case XmlNodeType.Text: ParseText (); break; case XmlNodeType.Whitespace: ParseWhitespace (); break; case XmlNodeType.SignificantWhitespace: ParseSignificantWhitespace (); break; } } XamlObjectElement obj = TopElement as XamlObjectElement; if (obj == null) { // We actually return the type of the property here // or the object that it wraps return null; } return obj.Object; }
public override object CreateObjectFromReader (StreamReader reader, bool createNamescope) { XamlParser p = new XamlParser () { CreateNameScope = createNamescope, ResourceBase = resourceBase, }; return p.ParseReader (reader); }