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
- connectionpool.cs
- QueryResults.cs
- MoveSizeWinEventHandler.cs
- LocalizationComments.cs
- EventLogReader.cs
- NavigationHelper.cs
- DesignerOptionService.cs
- BookmarkEventArgs.cs
- ConversionHelper.cs
- MdImport.cs
- StateBag.cs
- RelatedImageListAttribute.cs
- SecureStringHasher.cs
- Choices.cs
- LocalizationComments.cs
- UIElementParaClient.cs
- COM2ExtendedUITypeEditor.cs
- SynchronizationLockException.cs
- SHA512.cs
- WindowsListViewItemCheckBox.cs
- HtmlInputText.cs
- TranslateTransform3D.cs
- SafeCryptHandles.cs
- DataGridBoolColumn.cs
- FrameAutomationPeer.cs
- Single.cs
- PageCatalogPart.cs
- CrossAppDomainChannel.cs
- HtmlTable.cs
- DictionarySectionHandler.cs
- DynamicValidator.cs
- ObjectNotFoundException.cs
- UnsafeNativeMethods.cs
- compensatingcollection.cs
- ClientOptions.cs
- DescriptionAttribute.cs
- RegexCharClass.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- FirstQueryOperator.cs
- ListenerTraceUtility.cs
- XmlTextReader.cs
- validationstate.cs
- CodeCastExpression.cs
- SiteMapNodeCollection.cs
- IsolatedStorageException.cs
- StrokeFIndices.cs
- InkCanvas.cs
- ToolStripPanelSelectionGlyph.cs
- CallbackValidatorAttribute.cs
- DataServiceExpressionVisitor.cs
- OleDbEnumerator.cs
- DesignerTransaction.cs
- XmlArrayItemAttribute.cs
- StorageRoot.cs
- XdrBuilder.cs
- ConfigUtil.cs
- FileLogRecord.cs
- PackUriHelper.cs
- TemplatedAdorner.cs
- TcpConnectionPoolSettings.cs
- RenderContext.cs
- sqlser.cs
- TextViewBase.cs
- base64Transforms.cs
- DataServiceContext.cs
- ResourceExpressionBuilder.cs
- WebPart.cs
- CuspData.cs
- BufferModeSettings.cs
- LicenseContext.cs
- CatalogZone.cs
- FileDetails.cs
- MDIClient.cs
- SafeMILHandle.cs
- InputLanguageSource.cs
- DateTimeOffset.cs
- DrawingVisualDrawingContext.cs
- CodeComment.cs
- UnsafeNativeMethods.cs
- OracleParameter.cs
- IResourceProvider.cs
- TextBoxBaseDesigner.cs
- BitmapEffectGroup.cs
- ParserStack.cs
- DetailsViewRow.cs
- IpcPort.cs
- SqlWebEventProvider.cs
- ImpersonateTokenRef.cs
- RepeaterItemEventArgs.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- XmlValidatingReader.cs
- EntityParameterCollection.cs
- TextStore.cs
- _LocalDataStoreMgr.cs
- ToolbarAUtomationPeer.cs
- EnumType.cs
- Nullable.cs
- ActiveDocumentEvent.cs
- SecondaryViewProvider.cs
- WebPartManager.cs