protected internal virtual string SerializeSection(ConfigurationElement parentElement, string name, ConfigurationSaveMode saveMode)
{
if (((base.CurrentConfiguration != null) && (base.CurrentConfiguration.TargetFramework != null)) && !this.ShouldSerializeSectionInTargetVersion(base.CurrentConfiguration.TargetFramework))
{
return(string.Empty);
}
ConfigurationElement.ValidateElement(this, null, true);
ConfigurationElement element = ConfigurationElement.CreateElement(base.GetType());
element.Unmerge(this, parentElement, saveMode);
StringWriter w = new StringWriter(CultureInfo.InvariantCulture);
XmlTextWriter writer = new XmlTextWriter(w)
{
Formatting = Formatting.Indented,
Indentation = 4,
IndentChar = ' '
};
element.DataToWriteInternal = saveMode != ConfigurationSaveMode.Minimal;
if ((base.CurrentConfiguration != null) && (base.CurrentConfiguration.TargetFramework != null))
{
base._configRecord.SectionsStack.Push(this);
}
element.SerializeToXmlElement(writer, name);
if ((base.CurrentConfiguration != null) && (base.CurrentConfiguration.TargetFramework != null))
{
base._configRecord.SectionsStack.Pop();
}
writer.Flush();
return(w.ToString());
}