System.Configuration.ConfigurationElementCollection.SerializeElement C# (CSharp) Метод

SerializeElement() защищенный Метод

protected SerializeElement ( XmlWriter writer, bool serializeCollectionKey ) : bool
writer System.Xml.XmlWriter
serializeCollectionKey bool
Результат bool
        protected internal override bool SerializeElement(XmlWriter writer, bool serializeCollectionKey) {
            ConfigurationElementCollectionType type = CollectionType;
            bool DataToWrite = false;

            DataToWrite |= base.SerializeElement(writer, serializeCollectionKey);

            if (type == ConfigurationElementCollectionType.AddRemoveClearMap ||
                type == ConfigurationElementCollectionType.AddRemoveClearMapAlternate) {
                // it is possible that the collection only has to be cleared and contains
                // no real elements
                if (bEmitClearTag == true && (_clearElement.Length != 0)) {
                    if (writer != null) {
                        writer.WriteStartElement(_clearElement);
                        writer.WriteEndElement();
                    }
                    DataToWrite = true;
                }
            }

            foreach (Entry entry in _items) {
                if (type == ConfigurationElementCollectionType.BasicMap ||
                    type == ConfigurationElementCollectionType.BasicMapAlternate) {
                    if (entry._entryType == EntryType.Added || entry._entryType == EntryType.Replaced) {
                        if (ElementName != null && ElementName.Length != 0) {
                            if (BaseConfigurationRecord.IsReservedAttributeName(ElementName)) {
                                throw new ArgumentException(SR.GetString(SR.Basicmap_item_name_reserved, ElementName));
                            }
                            DataToWrite |= entry._value.SerializeToXmlElement(writer, ElementName);
                        }
                        else {
                            DataToWrite |= entry._value.SerializeElement(writer, false);
                        }
                    }
                }
                else if (type == ConfigurationElementCollectionType.AddRemoveClearMap ||
                         type == ConfigurationElementCollectionType.AddRemoveClearMapAlternate) {
                    if ((entry._entryType == EntryType.Removed || 
                         entry._entryType == EntryType.Replaced) && 
                        entry._value != null) {
                        
                        if (writer != null) {
                            writer.WriteStartElement(_removeElement);
                        }
                        
                        DataToWrite |= entry._value.SerializeElement(writer, true);
                        
                        if (writer != null) {
                            writer.WriteEndElement();
                        }
                        
                        DataToWrite = true;
                    }
                    if (entry._entryType == EntryType.Added || entry._entryType == EntryType.Replaced) {
                        DataToWrite |= entry._value.SerializeToXmlElement(writer, _addElement);
                    }
                }
            }
            return DataToWrite;
        }