Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / Configuration / DictionarySectionHandler.cs / 1 / DictionarySectionHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System.Collections; using System.Collections.Specialized; using System.Xml; using System.Globalization; ////// Simple dictionary config factory /// config is a dictionary mapping key->value /// /// <add key="name" value="text"> sets key=text /// <remove key="name"> removes the definition of key /// <clear> removes all definitions /// /// public class DictionarySectionHandler : IConfigurationSectionHandler { ////// Given a partially composed config object (possibly null) /// and some input from the config system, return a /// further partially composed config 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, , 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; } /// /// Make the name of the key attribute configurable by derived classes. /// protected virtual string KeyAttributeName { get { return "key";} } ////// Make the name of the value attribute configurable by derived classes. /// protected virtual string ValueAttributeName { get { return "value";} } // internal virtual bool ValueRequired { get { return false; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Visual3D.cs
- ParenthesizePropertyNameAttribute.cs
- PtsHelper.cs
- HyperlinkAutomationPeer.cs
- TextRunTypographyProperties.cs
- ConnectionsZoneAutoFormat.cs
- XmlILStorageConverter.cs
- ServiceParser.cs
- LinqDataSourceView.cs
- StreamUpdate.cs
- HwndProxyElementProvider.cs
- TextHidden.cs
- Lease.cs
- FtpRequestCacheValidator.cs
- ViewCellSlot.cs
- StringArrayConverter.cs
- XmlSerializerNamespaces.cs
- SqlDataSourceFilteringEventArgs.cs
- Panel.cs
- KnownIds.cs
- CustomGrammar.cs
- SqlProvider.cs
- documentsequencetextpointer.cs
- ECDsa.cs
- ComponentResourceManager.cs
- DbDeleteCommandTree.cs
- TextModifier.cs
- Point3DAnimation.cs
- CodeGroup.cs
- HttpServerProtocol.cs
- ContentPropertyAttribute.cs
- DocumentXPathNavigator.cs
- DoubleSumAggregationOperator.cs
- MenuItem.cs
- listitem.cs
- Connector.xaml.cs
- UpdateTranslator.cs
- xmlglyphRunInfo.cs
- TrackingDataItemValue.cs
- IRCollection.cs
- DocumentReferenceCollection.cs
- DesignerActionTextItem.cs
- MissingSatelliteAssemblyException.cs
- HierarchicalDataBoundControl.cs
- InlineUIContainer.cs
- ChoiceConverter.cs
- ComponentEditorPage.cs
- LayoutEngine.cs
- Keywords.cs
- ContextBase.cs
- ColumnBinding.cs
- ResourceCollectionInfo.cs
- CaseKeyBox.xaml.cs
- DataFormats.cs
- DeferredSelectedIndexReference.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- FileStream.cs
- ServiceOperation.cs
- InternalBufferOverflowException.cs
- WebCategoryAttribute.cs
- Utils.cs
- WorkflowPersistenceService.cs
- GifBitmapEncoder.cs
- CodeTypeMemberCollection.cs
- WindowsUpDown.cs
- _ScatterGatherBuffers.cs
- Vars.cs
- DataServiceCollectionOfT.cs
- ErrorHandler.cs
- HttpListenerContext.cs
- SizeAnimationUsingKeyFrames.cs
- UserControl.cs
- Timer.cs
- ProviderUtil.cs
- SelfIssuedSamlTokenFactory.cs
- SaveFileDialog.cs
- ListViewDeletedEventArgs.cs
- StopStoryboard.cs
- DataRow.cs
- _AutoWebProxyScriptEngine.cs
- ComponentCache.cs
- ExpressionContext.cs
- __Filters.cs
- ByteStorage.cs
- PrimaryKeyTypeConverter.cs
- DependencyPropertyDescriptor.cs
- MbpInfo.cs
- OleDbWrapper.cs
- HostUtils.cs
- WebDisplayNameAttribute.cs
- ProviderUtil.cs
- PassportAuthenticationModule.cs
- WorkflowElementDialog.cs
- DependencyPropertyAttribute.cs
- SiteMapDataSourceView.cs
- OperandQuery.cs
- BindingSource.cs
- PointValueSerializer.cs
- ToolStripPanelRenderEventArgs.cs
- HybridDictionary.cs