Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FixedSOMFixedBlock.cs
- InitializingNewItemEventArgs.cs
- Point4DConverter.cs
- PolicyLevel.cs
- SmiRecordBuffer.cs
- DbConnectionPoolGroupProviderInfo.cs
- XmlDataCollection.cs
- OracleException.cs
- AliasedExpr.cs
- AutomationElementCollection.cs
- WindowsPen.cs
- GeneralTransform2DTo3D.cs
- AttributeCollection.cs
- ElementFactory.cs
- Assembly.cs
- BStrWrapper.cs
- BooleanExpr.cs
- SimpleParser.cs
- WebPartConnectionsCancelEventArgs.cs
- SponsorHelper.cs
- CrossContextChannel.cs
- UnsafeCollabNativeMethods.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ComponentEditorForm.cs
- WebEvents.cs
- SimpleHandlerFactory.cs
- StylusCollection.cs
- AppSettingsReader.cs
- GetImportFileNameRequest.cs
- TextCompositionManager.cs
- XmlSerializerSection.cs
- PerfService.cs
- HttpListenerContext.cs
- MSHTMLHostUtil.cs
- ByteKeyFrameCollection.cs
- ProviderException.cs
- Int16.cs
- HttpHandlersSection.cs
- Token.cs
- InvalidContentTypeException.cs
- EventLogEntryCollection.cs
- PrintingPermissionAttribute.cs
- METAHEADER.cs
- BamlResourceContent.cs
- ButtonBase.cs
- Claim.cs
- WhitespaceRuleLookup.cs
- DbConnectionClosed.cs
- ControlValuePropertyAttribute.cs
- SudsWriter.cs
- CodeTypeDeclarationCollection.cs
- PublisherIdentityPermission.cs
- Win32Exception.cs
- Span.cs
- DataPager.cs
- FlowDocumentScrollViewer.cs
- EncryptedXml.cs
- HealthMonitoringSectionHelper.cs
- SimpleHandlerBuildProvider.cs
- DataListItemCollection.cs
- XPathAncestorQuery.cs
- NativeBuffer.cs
- DbDataReader.cs
- MultipartContentParser.cs
- SerializationStore.cs
- TextView.cs
- _SslState.cs
- ObjectQuery_EntitySqlExtensions.cs
- StringReader.cs
- DashStyle.cs
- HttpCapabilitiesBase.cs
- StringArrayConverter.cs
- XmlComment.cs
- EdmError.cs
- PrintingPermission.cs
- XmlSchemas.cs
- CornerRadiusConverter.cs
- Axis.cs
- CacheMemory.cs
- ProtocolsConfigurationHandler.cs
- QilXmlReader.cs
- SqlRowUpdatingEvent.cs
- ColorBlend.cs
- __TransparentProxy.cs
- Int64Storage.cs
- XmlSortKeyAccumulator.cs
- ViewBox.cs
- ParameterBuilder.cs
- DataGridColumnCollection.cs
- BitmapEffectDrawingContextWalker.cs
- DescendantOverDescendantQuery.cs
- BitStream.cs
- TextTreeObjectNode.cs
- IBuiltInEvidence.cs
- VarRemapper.cs
- Parameter.cs
- FlowDocumentPage.cs
- OdbcUtils.cs
- RepeatEnumerable.cs
- hebrewshape.cs