Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / KeyValueConfigurationCollection.cs / 1 / KeyValueConfigurationCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.IO; using System.Text; [ConfigurationCollection(typeof(KeyValueConfigurationElement))] public class KeyValueConfigurationCollection : ConfigurationElementCollection { private static ConfigurationPropertyCollection _properties; static KeyValueConfigurationCollection() { // Property initialization _properties = new ConfigurationPropertyCollection(); } protected internal override ConfigurationPropertyCollection Properties { get { return _properties; } } // // Constructor // public KeyValueConfigurationCollection() : base(StringComparer.OrdinalIgnoreCase) { internalAddToEnd = true; } // // Accessors // protected override bool ThrowOnDuplicate { get { return false; } } public new KeyValueConfigurationElement this[string key] { get { return (KeyValueConfigurationElement)BaseGet(key); } #if DONT_COMPILE // if we ever expose this element this will be handy set { int index = -1; // append by default KeyValueConfigurationElement tempElement = (KeyValueConfigurationElement)BaseGet(key); if (tempElement != null) { index = BaseIndexOf(tempElement); BaseRemoveAt(index); } BaseAdd(index, value); } #endif } public String[] AllKeys { get { return StringUtil.ObjectArrayToStringArray(BaseGetAllKeys()); } } // // Methods // public void Add(KeyValueConfigurationElement keyValue) { // Need to initialize in order to get the key keyValue.Init(); // the appsettings add works more like a namevalue collection add in that it appends values // when add is called and teh key already exists. KeyValueConfigurationElement oldValue = (KeyValueConfigurationElement)BaseGet(keyValue.Key); if (oldValue == null) { BaseAdd(keyValue); } else { oldValue.Value += "," + keyValue.Value; int index = BaseIndexOf(oldValue); BaseRemoveAt(index); BaseAdd(index, oldValue); } } public void Add(String key, String value) { KeyValueConfigurationElement element = new KeyValueConfigurationElement(key, value); Add(element); } #if DONT_COMPILE public void Remove(KeyValueConfigurationElement keyValue) { if (BaseIndexOf(keyValue) >= 0) BaseRemove(keyValue.Key); } #endif public void Remove(string key) { BaseRemove(key); } public void Clear() { BaseClear(); } protected override ConfigurationElement CreateNewElement() { return new KeyValueConfigurationElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((KeyValueConfigurationElement)element).Key; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.IO; using System.Text; [ConfigurationCollection(typeof(KeyValueConfigurationElement))] public class KeyValueConfigurationCollection : ConfigurationElementCollection { private static ConfigurationPropertyCollection _properties; static KeyValueConfigurationCollection() { // Property initialization _properties = new ConfigurationPropertyCollection(); } protected internal override ConfigurationPropertyCollection Properties { get { return _properties; } } // // Constructor // public KeyValueConfigurationCollection() : base(StringComparer.OrdinalIgnoreCase) { internalAddToEnd = true; } // // Accessors // protected override bool ThrowOnDuplicate { get { return false; } } public new KeyValueConfigurationElement this[string key] { get { return (KeyValueConfigurationElement)BaseGet(key); } #if DONT_COMPILE // if we ever expose this element this will be handy set { int index = -1; // append by default KeyValueConfigurationElement tempElement = (KeyValueConfigurationElement)BaseGet(key); if (tempElement != null) { index = BaseIndexOf(tempElement); BaseRemoveAt(index); } BaseAdd(index, value); } #endif } public String[] AllKeys { get { return StringUtil.ObjectArrayToStringArray(BaseGetAllKeys()); } } // // Methods // public void Add(KeyValueConfigurationElement keyValue) { // Need to initialize in order to get the key keyValue.Init(); // the appsettings add works more like a namevalue collection add in that it appends values // when add is called and teh key already exists. KeyValueConfigurationElement oldValue = (KeyValueConfigurationElement)BaseGet(keyValue.Key); if (oldValue == null) { BaseAdd(keyValue); } else { oldValue.Value += "," + keyValue.Value; int index = BaseIndexOf(oldValue); BaseRemoveAt(index); BaseAdd(index, oldValue); } } public void Add(String key, String value) { KeyValueConfigurationElement element = new KeyValueConfigurationElement(key, value); Add(element); } #if DONT_COMPILE public void Remove(KeyValueConfigurationElement keyValue) { if (BaseIndexOf(keyValue) >= 0) BaseRemove(keyValue.Key); } #endif public void Remove(string key) { BaseRemove(key); } public void Clear() { BaseClear(); } protected override ConfigurationElement CreateNewElement() { return new KeyValueConfigurationElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((KeyValueConfigurationElement)element).Key; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RadioButtonFlatAdapter.cs
- Int64Animation.cs
- HtmlInputControl.cs
- AddingNewEventArgs.cs
- SqlCommandBuilder.cs
- EdmPropertyAttribute.cs
- XmlnsCache.cs
- AdRotator.cs
- VarInfo.cs
- DateRangeEvent.cs
- XslAstAnalyzer.cs
- DiagnosticStrings.cs
- IProvider.cs
- StyleSheetDesigner.cs
- DataGridViewColumnEventArgs.cs
- ImportContext.cs
- BinaryObjectReader.cs
- SqlCommandSet.cs
- GridView.cs
- IdentityValidationException.cs
- ProfileService.cs
- RightNameExpirationInfoPair.cs
- Animatable.cs
- QilPatternVisitor.cs
- XmlILAnnotation.cs
- WebPartTransformer.cs
- AttachedAnnotation.cs
- HandlerFactoryWrapper.cs
- InstanceDescriptor.cs
- AppearanceEditorPart.cs
- CommandBinding.cs
- Util.cs
- FileFormatException.cs
- ProvideValueServiceProvider.cs
- XmlAnyAttributeAttribute.cs
- PeerServiceMessageContracts.cs
- ProcessHost.cs
- SqlPersonalizationProvider.cs
- SudsWriter.cs
- Button.cs
- ReverseInheritProperty.cs
- CacheOutputQuery.cs
- RenderingBiasValidation.cs
- ResourcePart.cs
- FlowLayoutPanelDesigner.cs
- Enlistment.cs
- SafeRegistryHandle.cs
- XmlNullResolver.cs
- SHA1Managed.cs
- ListViewGroupCollectionEditor.cs
- FileInfo.cs
- WebPartMenu.cs
- ReadWriteObjectLock.cs
- ColorTranslator.cs
- ExternalFile.cs
- XmlBoundElement.cs
- XmlRootAttribute.cs
- XmlNodeChangedEventArgs.cs
- DataSpaceManager.cs
- NullableFloatSumAggregationOperator.cs
- DataBindingExpressionBuilder.cs
- Attributes.cs
- FlowchartDesigner.Helpers.cs
- ObjectKeyFrameCollection.cs
- PageParserFilter.cs
- RuleProcessor.cs
- DefaultTraceListener.cs
- Compiler.cs
- WpfKnownType.cs
- ObjectListCommandCollection.cs
- DrawingImage.cs
- ClassDataContract.cs
- Part.cs
- RegisteredDisposeScript.cs
- PipelineModuleStepContainer.cs
- ReadingWritingEntityEventArgs.cs
- FolderBrowserDialogDesigner.cs
- KeyValueConfigurationElement.cs
- ThousandthOfEmRealPoints.cs
- WindowAutomationPeer.cs
- SQLBinaryStorage.cs
- XmlSchemaSimpleContentRestriction.cs
- HtmlControl.cs
- EntityDataSourceDataSelectionPanel.cs
- OleDbReferenceCollection.cs
- Message.cs
- LambdaExpression.cs
- ArraySortHelper.cs
- ClientTargetCollection.cs
- ProgressChangedEventArgs.cs
- ComplexTypeEmitter.cs
- CompositionCommandSet.cs
- TextTreeRootNode.cs
- AuthorizationRuleCollection.cs
- GregorianCalendarHelper.cs
- DesignerVerbToolStripMenuItem.cs
- Application.cs
- UnsafeNativeMethods.cs
- PointConverter.cs
- BitmapEffectOutputConnector.cs