System.Configuration.DictionarySectionHandler.Create C# (CSharp) Метод

Create() публичный Метод

public Create ( Object parent, Object context, XmlNode section ) : object
parent Object
context Object
section System.Xml.XmlNode
Результат object
        public virtual object Create(Object parent, Object context, XmlNode section) {
            Hashtable res;

            // start res off as a shallow clone of the parent

            if (parent == null)
                res = new Hashtable(StringComparer.OrdinalIgnoreCase);
            else
                res = (Hashtable)((Hashtable)parent).Clone();

            // process XML

            HandlerBase.CheckForUnrecognizedAttributes(section);

            foreach (XmlNode child in section.ChildNodes) {

                // skip whitespace and comments, throws if non-element
                if (HandlerBase.IsIgnorableAlsoCheckForNonElement(child))
                    continue;

                // handle <add>, <remove>, <clear> tags
                if (child.Name == "add") {
                    HandlerBase.CheckForChildNodes(child);
                    String key = HandlerBase.RemoveRequiredAttribute(child, KeyAttributeName);
                    String value;
                    if (ValueRequired)
                        value = HandlerBase.RemoveRequiredAttribute(child, ValueAttributeName);
                    else
                        value = HandlerBase.RemoveAttribute(child, ValueAttributeName);
                    HandlerBase.CheckForUnrecognizedAttributes(child);

                    if (value == null)
                        value = "";

                    res[key] = value;
                }
                else if (child.Name == "remove") {
                    HandlerBase.CheckForChildNodes(child);
                    String key = HandlerBase.RemoveRequiredAttribute(child, KeyAttributeName);
                    HandlerBase.CheckForUnrecognizedAttributes(child);

                    res.Remove(key);
                }
                else if (child.Name.Equals("clear")) {
                    HandlerBase.CheckForChildNodes(child);
                    HandlerBase.CheckForUnrecognizedAttributes(child);
                    res.Clear();
                }
                else {
                    HandlerBase.ThrowUnrecognizedElement(child);
                }
            }

            return res;
        }

Usage Example

Пример #1
0
		public static IDictionary GetConfig(Assembly assembly)
		{
			string url = assembly.CodeBase + ".config";
			XmlDocument xmlDocument = new XmlDocument();
			xmlDocument.Load(new XmlTextReader(url));
			XmlNodeList elementsByTagName = xmlDocument.GetElementsByTagName("assemblySettings");
			foreach (XmlNode xmlNode in elementsByTagName)
			{
				if (xmlNode.LocalName == "assemblySettings")
				{
					DictionarySectionHandler dictionarySectionHandler = new DictionarySectionHandler();
					return (IDictionary)dictionarySectionHandler.Create(null, null, xmlNode);
				}
			}
			return null;
		}
All Usage Examples Of System.Configuration.DictionarySectionHandler::Create
DictionarySectionHandler