public MappedHtmlNodeToReferenceNode(MappedHtmlNode parent, HtmlNode htmlNode, HtmlNode referenceNode, IEqualityComparer<HtmlNode> comparer, PropertyNameState propertyNameState)
            : base(parent)
        {
            if (htmlNode == null)
            {
                throw new ArgumentNullException("htmlNode");
            }

            if (referenceNode == null)
            {
                throw new ArgumentNullException("referenceNode");
            }

            if (comparer == null)
            {
                throw new ArgumentNullException("comparer");
            }

            if (propertyNameState == null)
            {
                throw new ArgumentNullException("propertyNameState");
            }

            this.htmlNode = htmlNode;
            this.referenceNode = referenceNode;
            this.comparer = comparer;
            this.propertyNameState = propertyNameState;

            base.children = MapChildren();


        }
        public MappedHtmlNodeTreeFactory(PropertyNameState propertyNameState)
        {
            if (propertyNameState == null)
            {
                throw new ArgumentNullException("propertyNameState");
            }

            this.propertyNameState = propertyNameState;
        }