/// <summary> /// 克隆当前元素到新的宿主模板 /// </summary> /// <param name="ownerTemplate"></param> /// <returns></returns> internal override Element Clone(Template ownerTemplate) { TemplateDocument tag = new TemplateDocument(this.DocumentConfig); //优先拷贝变量 foreach (Variable var in this.Variables) { tag.Variables.Add(var.Clone(tag)); } tag.Id = this.Id; tag.Name = this.Name; foreach (var att in this.Attributes) { tag.Attributes.Add(att.Clone(tag)); } tag.Charset = this.Charset; tag.File = this.File; tag.fileDependencies = this.fileDependencies; tag.Visible = this.Visible; foreach (Element element in this.InnerElements) { Element item = element.Clone(tag); tag.AppendChild(item); if (element is Template && this.DocumentElement == element) { tag.DocumentElement = (Template)item; } } if (tag.DocumentElement == null) { tag.DocumentElement = tag; } return(tag); }
/// <summary> /// 克隆当前元素到新的宿主模板 /// </summary> /// <param name="ownerTemplate"></param> /// <returns></returns> internal override Element Clone(Template ownerTemplate) { TemplateDocument tag = new TemplateDocument(this.DocumentConfig); //优先拷贝变量 foreach (Variable var in this.Variables) { tag.Variables.Add(var.Clone(tag)); } tag.Id = this.Id; tag.Name = this.Name; foreach (var att in this.Attributes) { tag.Attributes.Add(att.Clone(tag)); } tag.Charset = this.Charset; tag.File = this.File; tag.fileDependencies = this.fileDependencies; tag.Visible = this.Visible; foreach (Element element in this.InnerElements) { Element item = element.Clone(tag); tag.AppendChild(item); if (element is Template && this.DocumentElement == element) tag.DocumentElement = (Template)item; } if (tag.DocumentElement == null) tag.DocumentElement = tag; return tag; }