Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / KeyValueConfigurationCollection.cs / 1305376 / 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
- ObjectDataSourceSelectingEventArgs.cs
- UDPClient.cs
- ClassicBorderDecorator.cs
- ImageCodecInfoPrivate.cs
- EventlogProvider.cs
- SafeNativeMethods.cs
- WebHttpElement.cs
- IFlowDocumentViewer.cs
- ELinqQueryState.cs
- XPathAncestorIterator.cs
- ProtocolImporter.cs
- Comparer.cs
- PaintEvent.cs
- ContentOnlyMessage.cs
- InstancePersistenceContext.cs
- CssTextWriter.cs
- LicFileLicenseProvider.cs
- FixedFindEngine.cs
- MouseGestureValueSerializer.cs
- MailMessageEventArgs.cs
- TextSpan.cs
- PropertyStore.cs
- FlatButtonAppearance.cs
- StorageEntityContainerMapping.cs
- EdmFunctionAttribute.cs
- RTLAwareMessageBox.cs
- SafeSecurityHandles.cs
- SqlWorkflowPersistenceService.cs
- ValidationErrorInfo.cs
- CompiledQueryCacheKey.cs
- BookmarkOptionsHelper.cs
- BackgroundWorker.cs
- SafeProcessHandle.cs
- HtmlTableRowCollection.cs
- TagPrefixAttribute.cs
- EventWaitHandleSecurity.cs
- PtsHost.cs
- TextBoxDesigner.cs
- RayMeshGeometry3DHitTestResult.cs
- LogExtentCollection.cs
- SwitchExpression.cs
- ToolStripSystemRenderer.cs
- DataGridViewLinkColumn.cs
- DataGridViewRowEventArgs.cs
- FrameworkObject.cs
- ConnectionPoolManager.cs
- GridViewRowPresenter.cs
- DataServiceResponse.cs
- IgnorePropertiesAttribute.cs
- Header.cs
- MediaScriptCommandRoutedEventArgs.cs
- SqlUdtInfo.cs
- DataObjectEventArgs.cs
- Util.cs
- UiaCoreProviderApi.cs
- DataList.cs
- WebPartEventArgs.cs
- TextStore.cs
- Base64Decoder.cs
- DelegateBodyWriter.cs
- UInt16.cs
- ISessionStateStore.cs
- ProfileSettings.cs
- GetPolicyDetailsRequest.cs
- EventRouteFactory.cs
- DataListAutoFormat.cs
- hresults.cs
- FormConverter.cs
- Privilege.cs
- CmsInterop.cs
- ExpressionEditorAttribute.cs
- _NtlmClient.cs
- XmlConverter.cs
- PopupEventArgs.cs
- SymbolMethod.cs
- WebPartConnectionCollection.cs
- ParameterCollection.cs
- ContentControl.cs
- UnicodeEncoding.cs
- XsdBuildProvider.cs
- TextBoxView.cs
- ContainerControl.cs
- DesignConnectionCollection.cs
- Point.cs
- TrustLevelCollection.cs
- Type.cs
- CompensateDesigner.cs
- SQLByteStorage.cs
- ExecutionEngineException.cs
- PersonalizableAttribute.cs
- XslException.cs
- InvalidFilterCriteriaException.cs
- TaiwanCalendar.cs
- CheckedListBox.cs
- Permission.cs
- WindowCollection.cs
- PrintEvent.cs
- MimeParameterWriter.cs
- ObjectAnimationUsingKeyFrames.cs
- Size.cs