private void Build(ElementInfo elment, GeneratorUtil builderUtil)
        {
            builderUtil.AppendFormat("public class {0} : BaseNode", elment.Name);
            builderUtil.AppendLine("{");

            builderUtil.Entry();
            builderUtil.AppendLine( "#region 属性");
            foreach (var attr in elment.XmlAttributes)
            {
                builderUtil.AppendLine("public " + attr.Type + attr.Name );
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("get");
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("return this.Dom.Attributes[\"" + attr.Name + "\"].ToT<" + attr.Type + ">();");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.Leave();

                builderUtil.Entry();
                builderUtil.AppendLine("set");
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("this.Dom.Attributes[\"" + attr.Name + "\"] = value;");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
            }
            builderUtil.AppendLine("#endregion 属性");
            builderUtil.Leave();
            //System.Xml.XmlNode n;n.ChildNodes[0].Name
            builderUtil.Entry();
            builderUtil.AppendLine("#region 字段");

            foreach (var field in elment.Fields)
            {
                builderUtil.AppendLine("public " + field.Type + " " + field.Name);
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendFormatLine("get");
                builderUtil.Entry();
                builderUtil.AppendLine("{");
                if (field.Type.StartsWith("List<"))
                {

                }
                else
                {
                    builderUtil.AppendFormatLine("foreach(var node in this.Dom.ChildNodes)");
                    builderUtil.AppendLine("{");
                    builderUtil.Entry();
                    builderUtil.AppendFormatLine("if(node.Name == \"{0}\")", field.Name);
                    builderUtil.AppendLine("{");
                    builderUtil.Entry();
                    builderUtil.AppendFormatLine("return new {0}(node);", field.Name);
                    builderUtil.Leave();
                    builderUtil.AppendLine("}");
                    builderUtil.AppendLine("}");

                }
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.AppendLine("");
                builderUtil.AppendLine("}");
            }

            builderUtil.AppendLine("#endregion 字段");
            builderUtil.Leave();

            builderUtil.Entry();
            builderUtil.AppendLine(string.Format("public {0}()" ,elment.Name));
            builderUtil.AppendLine("{");
            builderUtil.AppendLine("}");
            builderUtil.AppendLine(string.Format("public {0}(XmlNode dom):base(dom)" ,elment.Name));
            builderUtil.AppendLine("{");
            builderUtil.AppendLine("}");
            builderUtil.Leave();

            builderUtil.AppendLine("}");
        }
        private void Build(ElementInfo elment, GeneratorUtil builderUtil)
        {
            builderUtil.AppendFormatLine("[ConfigurationProperty(\"{0}\")]", elment.Name);
            foreach (var f in elment.Fields)
            {
                if (f.IsGenricList)
                {
                    builderUtil.AppendFormatLine("[ConfigurationCollection(typeof({0}ConfigCollection), AddItemName = \"{1}\")]",f.GenericArgument, f.Name);

                }
            }
            builderUtil.AppendFormat("public class {0} : ConfigurationSection", elment.Name);
            builderUtil.AppendLine("{");

            builderUtil.Entry();
            builderUtil.AppendLine( "#region properties");
            foreach (var attr in elment.XmlAttributes)
            {
                builderUtil.AppendFormatLine("[ConfigurationProperty(\"{0}\")]",attr.Name);
                builderUtil.AppendLine("public " + attr.Type + attr.Name );
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("get");
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("return this[\"" + attr.Name + "\"].ToT<" + attr.Type + ">();");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.Leave();

                builderUtil.Entry();
                builderUtil.AppendLine("set");
                builderUtil.AppendLine("{");
                builderUtil.Entry();
                builderUtil.AppendLine("this[\"" + attr.Name + "\"] = value;");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.Leave();
                builderUtil.AppendLine("}");
            }
            builderUtil.AppendLine("#endregion properties");
            builderUtil.Leave();
            //System.Xml.XmlNode n;n.ChildNodes[0].Name
            builderUtil.Entry();
            builderUtil.AppendLine("#region fields");

            foreach (var field in elment.Fields)
            {

                if (field.IsGenricList)
                {
                    builderUtil.AppendLine("public " + field.GenericArgument + "ConfigCollection" + field.Name);
                    builderUtil.AppendLine("{");
                    builderUtil.Entry();
                    builderUtil.Append("get{");
                    builderUtil.AppendFormatLine("return ({0}ConfigCollection)base[{1}];", field.GenericArgument, field.Name);
                    builderUtil.Append("}");
                    builderUtil.Leave();
                }
                else
                {
                    builderUtil.AppendFormatLine("foreach(var node in this.Dom.ChildNodes)");
                    builderUtil.AppendLine("{");
                    builderUtil.Entry();
                    builderUtil.AppendFormatLine("if(node.Name == \"{0}\")", field.Name);
                    builderUtil.AppendLine("{");
                    builderUtil.Entry();
                    builderUtil.AppendFormatLine("return new {0}(node);", field.Name);
                    builderUtil.Leave();
                    builderUtil.AppendLine("}");
                    builderUtil.AppendLine("}");

                }
                builderUtil.Leave();
                builderUtil.AppendLine("}");
                builderUtil.AppendLine("");
                builderUtil.AppendLine("}");
            }

            builderUtil.AppendLine("#endregion fields");
            builderUtil.Leave();

            builderUtil.Entry();
            builderUtil.AppendLine(string.Format("public {0}()" ,elment.Name));
            builderUtil.AppendLine("{");
            builderUtil.AppendLine("}");
            builderUtil.AppendLine(string.Format("public {0}(XmlNode dom):base(dom)" ,elment.Name));
            builderUtil.AppendLine("{");
            builderUtil.AppendLine("}");
            builderUtil.Leave();

            builderUtil.AppendLine("}");
        }