internal ControlBuilder CreateChildBuilder(string tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, string id, int line, string sourceFileName, ref Type childType) { ControlBuilder subBuilder; if (FChildrenAsProperties) { // If there is a default property, delegate to its builder if (_defaultPropBuilder != null) { subBuilder = _defaultPropBuilder.CreateChildBuilder(tagName, attribs, parser, null, id, line, sourceFileName, ref childType); } else { subBuilder = GetChildPropertyBuilder(tagName, attribs, ref childType); } } else { childType = GetChildControlType(tagName, attribs); if (childType == null) { return(null); } subBuilder = CreateBuilderFromType( parser, this, childType, tagName, id, attribs, line, sourceFileName); } if (subBuilder == null) { return(null); } subBuilder._parentBuilder = (parentBuilder != null) ? parentBuilder : this; return(subBuilder); }