System.Configuration.LocalFileSettingsProvider.SerializeToXmlElement C# (CSharp) Метод

SerializeToXmlElement() приватный Метод

private SerializeToXmlElement ( SettingsProperty setting, SettingsPropertyValue value ) : XmlNode
setting SettingsProperty
value SettingsPropertyValue
Результат XmlNode
        private XmlNode SerializeToXmlElement(SettingsProperty setting, SettingsPropertyValue value) {
            XmlDocument doc = new XmlDocument();
            XmlElement valueXml = doc.CreateElement("value");

            string serializedValue = value.SerializedValue as string;
            
            if (serializedValue == null && setting.SerializeAs == SettingsSerializeAs.Binary) {
                // SettingsPropertyValue returns a byte[] in the binary serialization case. We need to
                // encode this - we use base64 since SettingsPropertyValue understands it and we won't have
                // to special case while deserializing.
                byte[] buf = value.SerializedValue as byte[];
                if (buf != null) {
                    serializedValue = Convert.ToBase64String(buf);
                }
            }

            if (serializedValue == null) {
                serializedValue = String.Empty;
            }
            
            // We need to escape string serialized values
            if (setting.SerializeAs == SettingsSerializeAs.String) {
                serializedValue = Escaper.Escape(serializedValue);
            }

            valueXml.InnerXml = serializedValue; 
            
            XmlNode unwanted = null;
            foreach (XmlNode child in valueXml.ChildNodes) {
                if (child.NodeType == XmlNodeType.XmlDeclaration) {
                    unwanted = child;
                    break;
                }
            }
            if (unwanted != null) {
                valueXml.RemoveChild(unwanted);
            }
            
            return valueXml;
        }