コード例 #1
0
        protected override bool OnDeserializeUnrecognizedElement(string elementName, XmlReader reader)
        {
            if (IsBasic)
            {
                ConfigurationElement elem = null;

                if (elementName == ElementName)
                {
                    elem = CreateNewElementInternal(null);
                }
                if (IsElementName(elementName))
                {
                    elem = CreateNewElementInternal(elementName);
                }

                if (elem != null)
                {
                    elem.DeserializeElement(reader, false);
                    BaseAdd(elem);
                    modified = false;
                    return(true);
                }
            }
            else
            {
                if (elementName == clearElementName)
                {
                    reader.MoveToContent();
                    if (reader.MoveToNextAttribute())
                    {
                        throw new ConfigurationErrorsException("Unrecognized attribute '" + reader.LocalName + "'.");
                    }
                    reader.MoveToElement();
                    reader.Skip();
                    BaseClear();
                    emitClear = true;
                    modified  = false;
                    return(true);
                }
                else if (elementName == removeElementName)
                {
                    ConfigurationElement       elem       = CreateNewElementInternal(null);
                    ConfigurationRemoveElement removeElem = new ConfigurationRemoveElement(elem, this);
                    removeElem.DeserializeElement(reader, true);
                    BaseRemove(removeElem.KeyValue);
                    modified = false;
                    return(true);
                }
                else if (elementName == addElementName)
                {
                    ConfigurationElement elem = CreateNewElementInternal(null);
                    elem.DeserializeElement(reader, false);
                    BaseAdd(elem);
                    modified = false;
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
		protected override bool OnDeserializeUnrecognizedElement (string elementName, XmlReader reader)
		{
			if (IsBasic)
			{
				ConfigurationElement elem = null;
				
				if (elementName == ElementName)
					elem = CreateNewElementInternal (null);
				if (IsElementName (elementName))
					elem = CreateNewElementInternal (elementName);

				if (elem != null) {
					elem.DeserializeElement (reader, false);
					BaseAdd (elem);
					modified = false;
					return true;
				}
			}
			else {
				if (elementName == clearElementName) {
					reader.MoveToContent ();
					if (reader.MoveToNextAttribute ())
						throw new ConfigurationErrorsException ("Unrecognized attribute '" + reader.LocalName + "'.");
					reader.MoveToElement ();
					reader.Skip ();
					BaseClear ();
					emitClear = true;
					modified = false;
					return true;
				}
				else if (elementName == removeElementName) {
					ConfigurationElement elem = CreateNewElementInternal (null);
					ConfigurationRemoveElement removeElem = new ConfigurationRemoveElement (elem, this);
					removeElem.DeserializeElement (reader, true);
					BaseRemove (removeElem.KeyValue);
					modified = false;
					return true;
				}
				else if (elementName == addElementName) {
					ConfigurationElement elem = CreateNewElementInternal (null);
					elem.DeserializeElement (reader, false);
					BaseAdd (elem);
					modified = false;
					return true;
				}
			}
			
			return false;
		}