Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Sys / System / Configuration / NameValueSectionHandler.cs / 1305376 / 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
- AutomationFocusChangedEventArgs.cs
- PrintDialog.cs
- MetadataException.cs
- MailBnfHelper.cs
- CodeLabeledStatement.cs
- TypeUtil.cs
- XmlSchemaComplexContentRestriction.cs
- ProviderSettings.cs
- XPathItem.cs
- Missing.cs
- InvalidAsynchronousStateException.cs
- SelectionPatternIdentifiers.cs
- DeferrableContent.cs
- SinglePageViewer.cs
- CompiledQuery.cs
- ExtractedStateEntry.cs
- PointLightBase.cs
- ClassImporter.cs
- MethodInfo.cs
- AutomationElement.cs
- SchemeSettingElementCollection.cs
- InstanceCompleteException.cs
- AnnotationAuthorChangedEventArgs.cs
- RightsManagementUser.cs
- BlurBitmapEffect.cs
- InvokeGenerator.cs
- RootBrowserWindow.cs
- RoamingStoreFileUtility.cs
- IpcManager.cs
- RequestResizeEvent.cs
- SimpleBitVector32.cs
- CellCreator.cs
- FunctionImportMapping.cs
- GraphicsContext.cs
- DataFieldConverter.cs
- XmlILOptimizerVisitor.cs
- ComponentResourceKey.cs
- Array.cs
- TextServicesCompartmentEventSink.cs
- DataGridViewCheckBoxColumn.cs
- BinaryConverter.cs
- XmlSerializerNamespaces.cs
- _HTTPDateParse.cs
- XmlSchemaSimpleContentRestriction.cs
- Point4DValueSerializer.cs
- GetPageCompletedEventArgs.cs
- MethodToken.cs
- GeometryModel3D.cs
- TransformerTypeCollection.cs
- DiscoveryClientProtocol.cs
- NavigationPropertyEmitter.cs
- InvalidPrinterException.cs
- DbReferenceCollection.cs
- Column.cs
- CacheDependency.cs
- IItemProperties.cs
- XComponentModel.cs
- NullableBoolConverter.cs
- XappLauncher.cs
- Math.cs
- BinaryParser.cs
- WindowsGraphicsWrapper.cs
- HostedTransportConfigurationManager.cs
- _NetworkingPerfCounters.cs
- SafeNativeMethods.cs
- ReachUIElementCollectionSerializer.cs
- SmtpException.cs
- COM2IPerPropertyBrowsingHandler.cs
- ButtonChrome.cs
- documentsequencetextcontainer.cs
- GlyphCollection.cs
- DataGridViewButtonColumn.cs
- OperationCanceledException.cs
- HashSet.cs
- FontNamesConverter.cs
- BitStack.cs
- AttributeExtensions.cs
- XmlChildEnumerator.cs
- DataPager.cs
- ImportFileRequest.cs
- Ipv6Element.cs
- SelectedGridItemChangedEvent.cs
- TypeElement.cs
- Margins.cs
- DataReaderContainer.cs
- KernelTypeValidation.cs
- InternalCache.cs
- ProcessRequestArgs.cs
- DataRelation.cs
- METAHEADER.cs
- HtmlShimManager.cs
- DesignerUtility.cs
- Tracking.cs
- HuffmanTree.cs
- RuntimeTransactionHandle.cs
- AuthenticationManager.cs
- DataGridViewBand.cs
- VirtualPathUtility.cs
- RichTextBoxContextMenu.cs
- ColorInterpolationModeValidation.cs