private void AssignNamedProperties(IDom source, T obj, TargetChildMapping mapping)
        {
            var sourceHasStructuredDocs = source as IHasStructuredDocumentation;

            if (sourceHasStructuredDocs != null)
            {
                var xmlDocs = sourceHasStructuredDocs.StructuredDocumentation;
                obj.XmlCommentString = xmlDocs.Document;
            }
            var namedProperties = mapping.GetNamedProperties().ToList();

            foreach (var namedProperty in namedProperties)
            {
                var value = source.RequestValue(namedProperty, true);
                //while (value == null) { value = source.Parent.RequestValue(namedProperty); }
                if (ReflectionUtilities.CanSetProperty(obj, namedProperty))
                {
                    ReflectionHelpers.AssignPropertyValue(obj, namedProperty, value);
                }
            }
        }