Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- XDeferredAxisSource.cs
- DBCSCodePageEncoding.cs
- CompiledAction.cs
- InternalsVisibleToAttribute.cs
- ValueType.cs
- PropertyRecord.cs
- ErrorInfoXmlDocument.cs
- DependencyPropertyKind.cs
- ButtonBase.cs
- MatrixUtil.cs
- indexingfiltermarshaler.cs
- RoutedUICommand.cs
- WebPartVerb.cs
- CompoundFileDeflateTransform.cs
- DirectoryRootQuery.cs
- Binding.cs
- FigureHelper.cs
- KeyTime.cs
- SourceSwitch.cs
- RequestResizeEvent.cs
- LocationFactory.cs
- NativeMethods.cs
- Error.cs
- TransportConfigurationTypeElement.cs
- InstancePersistenceCommand.cs
- Binding.cs
- AddDataControlFieldDialog.cs
- UIPermission.cs
- ClientOptions.cs
- ListViewUpdatedEventArgs.cs
- InstalledVoice.cs
- MatrixAnimationBase.cs
- EdmEntityTypeAttribute.cs
- LocalClientSecuritySettings.cs
- ImageListStreamer.cs
- TouchDevice.cs
- DragCompletedEventArgs.cs
- DesignerActionMethodItem.cs
- CommandValueSerializer.cs
- FontStretchConverter.cs
- ControlCollection.cs
- ResizeBehavior.cs
- KeyGestureConverter.cs
- Hyperlink.cs
- XmlCustomFormatter.cs
- ArcSegment.cs
- DataGridTextBox.cs
- SBCSCodePageEncoding.cs
- CapabilitiesPattern.cs
- SQLInt16Storage.cs
- EmptyEnumerator.cs
- SqlTrackingQuery.cs
- DataSet.cs
- EdmToObjectNamespaceMap.cs
- TriggerCollection.cs
- Glyph.cs
- XmlSchemaRedefine.cs
- NetworkInformationPermission.cs
- MatrixAnimationBase.cs
- ListViewInsertEventArgs.cs
- QueryableFilterUserControl.cs
- ScriptingRoleServiceSection.cs
- SchemaComplexType.cs
- DrawingContextDrawingContextWalker.cs
- KeyValuePair.cs
- DeleteIndexBinder.cs
- SecurityElementBase.cs
- ClientTargetSection.cs
- XPathDocumentBuilder.cs
- ItemType.cs
- Int32AnimationUsingKeyFrames.cs
- EntityContainerEntitySet.cs
- storepermission.cs
- CacheMode.cs
- BinaryCommonClasses.cs
- StringArrayEditor.cs
- PngBitmapEncoder.cs
- OdbcUtils.cs
- SamlDoNotCacheCondition.cs
- TextServicesLoader.cs
- DefaultDialogButtons.cs
- ResolveCriteria.cs
- IIS7WorkerRequest.cs
- HelpProvider.cs
- DBPropSet.cs
- OperationAbortedException.cs
- CodeValidator.cs
- NonParentingControl.cs
- ControlAdapter.cs
- DateTimePicker.cs
- GridViewSortEventArgs.cs
- BitmapEffect.cs
- TypeBuilderInstantiation.cs
- ConnectionPoolManager.cs
- SafeArrayTypeMismatchException.cs
- StringCollectionMarkupSerializer.cs
- ChangesetResponse.cs
- PropertyBuilder.cs
- RootAction.cs
- BindingSource.cs