Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Sys / System / Configuration / NameValueSectionHandler.cs / 1 / NameValueSectionHandler.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 /// public class NameValueSectionHandler : IConfigurationSectionHandler { const string defaultKeyAttribute = "key"; const string defaultValueAttribute = "value"; ////// public object Create(object parent, object context, XmlNode section) { return CreateStatic(parent, section, KeyAttributeName, ValueAttributeName); } internal static object CreateStatic(object parent, XmlNode section) { return CreateStatic(parent, section, defaultKeyAttribute, defaultValueAttribute); } internal static object CreateStatic(object parent, XmlNode section, string keyAttriuteName, string valueAttributeName) { ReadOnlyNameValueCollection result; // start result off as a shallow clone of the parent if (parent == null) result = new ReadOnlyNameValueCollection(StringComparer.OrdinalIgnoreCase); else { ReadOnlyNameValueCollection parentCollection = (ReadOnlyNameValueCollection)parent; result = new ReadOnlyNameValueCollection(parentCollection); } // process XML HandlerBase.CheckForUnrecognizedAttributes(section); foreach (XmlNode child in section.ChildNodes) { // skip whitespace and comments if (HandlerBase.IsIgnorableAlsoCheckForNonElement(child)) continue; // handle[To be supplied.] ///, , tags if (child.Name == "add") { String key = HandlerBase.RemoveRequiredAttribute(child, keyAttriuteName); String value = HandlerBase.RemoveRequiredAttribute(child, valueAttributeName, true/*allowEmptyString*/); HandlerBase.CheckForUnrecognizedAttributes(child); result[key] = value; } else if (child.Name == "remove") { String key = HandlerBase.RemoveRequiredAttribute(child, keyAttriuteName); HandlerBase.CheckForUnrecognizedAttributes(child); result.Remove(key); } else if (child.Name.Equals("clear")) { HandlerBase.CheckForUnrecognizedAttributes(child); result.Clear(); } else { HandlerBase.ThrowUnrecognizedElement(child); } } result.SetReadOnly(); return result; } /// /// protected virtual string KeyAttributeName { get { return defaultKeyAttribute;} } ///[To be supplied.] ////// protected virtual string ValueAttributeName { get { return defaultValueAttribute;} } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //[To be supplied.] ///// 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 /// public class NameValueSectionHandler : IConfigurationSectionHandler { const string defaultKeyAttribute = "key"; const string defaultValueAttribute = "value"; ////// public object Create(object parent, object context, XmlNode section) { return CreateStatic(parent, section, KeyAttributeName, ValueAttributeName); } internal static object CreateStatic(object parent, XmlNode section) { return CreateStatic(parent, section, defaultKeyAttribute, defaultValueAttribute); } internal static object CreateStatic(object parent, XmlNode section, string keyAttriuteName, string valueAttributeName) { ReadOnlyNameValueCollection result; // start result off as a shallow clone of the parent if (parent == null) result = new ReadOnlyNameValueCollection(StringComparer.OrdinalIgnoreCase); else { ReadOnlyNameValueCollection parentCollection = (ReadOnlyNameValueCollection)parent; result = new ReadOnlyNameValueCollection(parentCollection); } // process XML HandlerBase.CheckForUnrecognizedAttributes(section); foreach (XmlNode child in section.ChildNodes) { // skip whitespace and comments if (HandlerBase.IsIgnorableAlsoCheckForNonElement(child)) continue; // handle[To be supplied.] ///, , tags if (child.Name == "add") { String key = HandlerBase.RemoveRequiredAttribute(child, keyAttriuteName); String value = HandlerBase.RemoveRequiredAttribute(child, valueAttributeName, true/*allowEmptyString*/); HandlerBase.CheckForUnrecognizedAttributes(child); result[key] = value; } else if (child.Name == "remove") { String key = HandlerBase.RemoveRequiredAttribute(child, keyAttriuteName); HandlerBase.CheckForUnrecognizedAttributes(child); result.Remove(key); } else if (child.Name.Equals("clear")) { HandlerBase.CheckForUnrecognizedAttributes(child); result.Clear(); } else { HandlerBase.ThrowUnrecognizedElement(child); } } result.SetReadOnly(); return result; } /// /// protected virtual string KeyAttributeName { get { return defaultKeyAttribute;} } ///[To be supplied.] ////// protected virtual string ValueAttributeName { get { return defaultValueAttribute;} } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RegisteredScript.cs
- FixedSOMSemanticBox.cs
- XsdDataContractImporter.cs
- RoutedEvent.cs
- DependencyObjectValidator.cs
- _TransmitFileOverlappedAsyncResult.cs
- HMACSHA512.cs
- MultiTrigger.cs
- FormViewInsertEventArgs.cs
- NamespaceList.cs
- MsmqDiagnostics.cs
- DrawingServices.cs
- FixedSOMTableRow.cs
- MonitorWrapper.cs
- WsatAdminException.cs
- JoinSymbol.cs
- ToolStripGrip.cs
- ViewgenContext.cs
- BitmapEncoder.cs
- DataObjectCopyingEventArgs.cs
- SpStreamWrapper.cs
- LinkedList.cs
- HttpCookieCollection.cs
- CachedPathData.cs
- SqlNotificationEventArgs.cs
- SoapAttributeAttribute.cs
- SemaphoreSecurity.cs
- ProjectionPruner.cs
- AlphaSortedEnumConverter.cs
- ApplicationDirectoryMembershipCondition.cs
- SafeProcessHandle.cs
- CheckableControlBaseAdapter.cs
- Form.cs
- UpdateTranslator.cs
- Rules.cs
- Hashtable.cs
- LinearKeyFrames.cs
- LoadedOrUnloadedOperation.cs
- ChannelPool.cs
- ViewLoader.cs
- IListConverters.cs
- DrawingAttributesDefaultValueFactory.cs
- MediaTimeline.cs
- PageStatePersister.cs
- OutputCacheSettingsSection.cs
- PathData.cs
- StyleTypedPropertyAttribute.cs
- SqlVersion.cs
- ListViewItemSelectionChangedEvent.cs
- DBNull.cs
- DataGridViewCellLinkedList.cs
- InputMethodStateChangeEventArgs.cs
- SqlBinder.cs
- FormViewInsertedEventArgs.cs
- FtpWebResponse.cs
- IncrementalReadDecoders.cs
- PropertyBuilder.cs
- TextViewBase.cs
- CodeObject.cs
- LineBreak.cs
- ReadWriteSpinLock.cs
- DoubleLink.cs
- DataDocumentXPathNavigator.cs
- TripleDESCryptoServiceProvider.cs
- ValidationEventArgs.cs
- PropertyFilter.cs
- EnumConverter.cs
- AssemblyHash.cs
- UnsafeMethods.cs
- StreamGeometry.cs
- ErrorFormatter.cs
- BitmapEffectrendercontext.cs
- Scheduling.cs
- ModulesEntry.cs
- TransactionInformation.cs
- IDQuery.cs
- Clock.cs
- SafeRightsManagementHandle.cs
- EdgeProfileValidation.cs
- HatchBrush.cs
- BitmapEffectrendercontext.cs
- ErrorTableItemStyle.cs
- GrammarBuilderDictation.cs
- DataObject.cs
- LiteralControl.cs
- ToolStripItemClickedEventArgs.cs
- ObjectDataSourceFilteringEventArgs.cs
- XmlValidatingReader.cs
- FtpWebResponse.cs
- XmlReaderSettings.cs
- Style.cs
- HeaderedItemsControl.cs
- TreeNodeClickEventArgs.cs
- ResourceSetExpression.cs
- ELinqQueryState.cs
- ControlBindingsCollection.cs
- XmlWriterTraceListener.cs
- CapiNative.cs
- DataReceivedEventArgs.cs
- SmtpCommands.cs