public XamlDomReader(XamlDomNode domNode, XamlSchemaContext schemaContext, XamlDomReaderSettings settings) { if (schemaContext == null) { throw new ArgumentNullException("schemaContext"); } if (domNode == null) { throw new ArgumentNullException("domNode"); } SchemaContext = schemaContext; if (settings != null) { _doNotReorder = settings.DoNotReorderMembers; } _nodes = WalkDom(domNode).GetEnumerator(); }
public XamlDomReader(XamlDomNode domNode, XamlSchemaContext schemaContext) : this(domNode, schemaContext, null) { }
private IEnumerable<XamlNode> WalkDom(XamlDomNode domNode) { var objectNode = domNode as XamlDomObject; if (objectNode != null) { foreach (var node in ReadObjectNode(objectNode)) { yield return node; } } else { var memberNode = domNode as XamlDomMember; if (memberNode != null) { foreach (var node in ReadMemberNode(memberNode)) { yield return node; } } else { foreach (var node in ReadValueNode(domNode as XamlDomValue)) { yield return node; } } } }