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
- ArithmeticException.cs
- ServiceProviders.cs
- Int16Storage.cs
- PrintPreviewGraphics.cs
- SchemaImporterExtensionElement.cs
- Binding.cs
- DeploymentExceptionMapper.cs
- Section.cs
- InvalidProgramException.cs
- ClientTargetCollection.cs
- GenericWebPart.cs
- FormViewPagerRow.cs
- XmlReaderDelegator.cs
- VirtualPathProvider.cs
- ContactManager.cs
- OrthographicCamera.cs
- PathGradientBrush.cs
- DatasetMethodGenerator.cs
- DataServiceResponse.cs
- WebPartMovingEventArgs.cs
- ContainerParagraph.cs
- MembershipValidatePasswordEventArgs.cs
- ItemMap.cs
- PageThemeParser.cs
- HostProtectionPermission.cs
- Missing.cs
- XomlSerializationHelpers.cs
- TextDpi.cs
- ValidatorCompatibilityHelper.cs
- AspNetCompatibilityRequirementsAttribute.cs
- NameValueCollection.cs
- FacetChecker.cs
- MetafileHeader.cs
- DataSourceView.cs
- XmlSchemaGroupRef.cs
- QualificationDataItem.cs
- ClientSettingsProvider.cs
- BrushMappingModeValidation.cs
- FontResourceCache.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- PartialToken.cs
- KeyValuePairs.cs
- ImageFormat.cs
- ParamArrayAttribute.cs
- HotSpot.cs
- userdatakeys.cs
- OpenCollectionAsyncResult.cs
- WebServicesInteroperability.cs
- CdpEqualityComparer.cs
- TextSelectionProcessor.cs
- ViewCellSlot.cs
- BypassElement.cs
- CultureInfoConverter.cs
- HiddenFieldPageStatePersister.cs
- ReliableOutputSessionChannel.cs
- Rfc2898DeriveBytes.cs
- Deflater.cs
- ObjectDataSourceView.cs
- XmlReader.cs
- CallbackValidatorAttribute.cs
- HotSpot.cs
- SiteMapDataSource.cs
- AutoScrollHelper.cs
- FormViewUpdatedEventArgs.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- RelOps.cs
- ExtensibleClassFactory.cs
- FixedTextBuilder.cs
- SizeValueSerializer.cs
- oledbmetadatacollectionnames.cs
- SchemaSetCompiler.cs
- ListSortDescriptionCollection.cs
- XmlElementAttributes.cs
- Triangle.cs
- DigitalSignature.cs
- CustomTypeDescriptor.cs
- RenderingBiasValidation.cs
- ThemeableAttribute.cs
- XmlDataSourceNodeDescriptor.cs
- CookieParameter.cs
- XmlConverter.cs
- SapiGrammar.cs
- NumericExpr.cs
- SelectionRangeConverter.cs
- Util.cs
- WebExceptionStatus.cs
- FolderLevelBuildProvider.cs
- DrawingGroup.cs
- RadioButton.cs
- ExtendedPropertiesHandler.cs
- Descriptor.cs
- DelayDesigner.cs
- DataGridCellAutomationPeer.cs
- AQNBuilder.cs
- ResourceType.cs
- CodeStatementCollection.cs
- SizeLimitedCache.cs
- ServiceElementCollection.cs
- FilterElement.cs
- cookie.cs