private IEnumerable <XamlNode> ReadMemberNode(XamlDomMember memberNode) { if (memberNode.Items != null && memberNode.Items.Count > 0) { yield return(XamlNode.GetStartMember(memberNode)); foreach (var itemNode in memberNode.Items) { var objectNode = itemNode as XamlDomObject; IEnumerable <XamlNode> enumerable; if (objectNode != null) { enumerable = ReadObjectNode(objectNode); } else { enumerable = ReadValueNode(itemNode as XamlDomValue); } foreach (var node in enumerable) { yield return(node); } } yield return(XamlNode.GetEndMember(memberNode)); } }