SettingValueElement
Contains the XML representing the serialized value of the setting. This class cannot be inherited.
using System.Xml;
namespace System.Configuration
{
public sealed class SettingValueElement : ConfigurationElement
{
private static volatile ConfigurationPropertyCollection _properties;
private static readonly XmlDocument _document = new XmlDocument();
private XmlNode _valueXml;
private bool _isModified;
protected internal override ConfigurationPropertyCollection Properties => _properties ?? (_properties = new ConfigurationPropertyCollection());
public XmlNode ValueXml {
get {
return _valueXml;
}
set {
_valueXml = value;
_isModified = true;
}
}
protected internal override void DeserializeElement(XmlReader reader, bool serializeCollectionKey)
{
ValueXml = _document.ReadNode(reader);
}
public override bool Equals(object settingValue)
{
SettingValueElement settingValueElement = settingValue as SettingValueElement;
if (settingValueElement != null)
return object.Equals(settingValueElement.ValueXml, ValueXml);
return false;
}
public override int GetHashCode()
{
return ValueXml?.GetHashCode() ?? 0;
}
protected internal override bool IsModified()
{
return _isModified;
}
protected internal override void ResetModified()
{
_isModified = false;
}
protected internal override bool SerializeToXmlElement(XmlWriter writer, string elementName)
{
if (ValueXml != null) {
if (writer != null)
ValueXml?.WriteTo(writer);
return true;
}
return false;
}
protected internal override void Reset(ConfigurationElement parentElement)
{
base.Reset(parentElement);
ValueXml = ((SettingValueElement)parentElement).ValueXml;
}
protected internal override void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode)
{
base.Unmerge(sourceElement, parentElement, saveMode);
ValueXml = ((SettingValueElement)sourceElement).ValueXml;
}
}
}