Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / Configuration / SettingsPropertyCollection.cs / 1 / SettingsPropertyCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System.Collections; using System.Collections.Specialized; using System.Runtime.Serialization; using System.Configuration.Provider; using System.Globalization; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Xml.Serialization; using System.ComponentModel; //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public class SettingsPropertyCollection : IEnumerable, ICloneable, ICollection { private Hashtable _Hashtable = null; private bool _ReadOnly = false; //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public SettingsPropertyCollection() { _Hashtable = new Hashtable(10, CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public void Add(SettingsProperty property) { if (_ReadOnly) throw new NotSupportedException(); OnAdd(property); _Hashtable.Add(property.Name, property); try { OnAddComplete(property); } catch { _Hashtable.Remove(property.Name); throw; } } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public void Remove(string name) { if (_ReadOnly) throw new NotSupportedException(); SettingsProperty toRemove = (SettingsProperty)_Hashtable[name]; if (toRemove == null) return; OnRemove(toRemove); _Hashtable.Remove(name); try { OnRemoveComplete(toRemove); } catch { _Hashtable.Add(name, toRemove); throw; } } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public SettingsProperty this[string name] { get { return _Hashtable[name] as SettingsProperty; } } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public IEnumerator GetEnumerator() { return _Hashtable.Values.GetEnumerator(); } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public object Clone() { return new SettingsPropertyCollection(_Hashtable); } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public void SetReadOnly() { if (_ReadOnly) return; _ReadOnly = true; } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// public void Clear() { if (_ReadOnly) throw new NotSupportedException(); OnClear(); _Hashtable.Clear(); OnClearComplete(); } //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// // On* Methods for deriving classes to override. These have // been modeled after the CollectionBase class but have // been stripped of their "index" parameters as there is no // visible index to this collection. protected virtual void OnAdd(SettingsProperty property) {} protected virtual void OnAddComplete(SettingsProperty property) {} protected virtual void OnClear() {} protected virtual void OnClearComplete() {} protected virtual void OnRemove(SettingsProperty property) {} protected virtual void OnRemoveComplete(SettingsProperty property) {} //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// // ICollection interface public int Count { get { return _Hashtable.Count; } } public bool IsSynchronized { get { return false; } } public object SyncRoot { get { return this; } } public void CopyTo(Array array, int index) { _Hashtable.Values.CopyTo(array, index); } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// private SettingsPropertyCollection(Hashtable h) { _Hashtable = (Hashtable)h.Clone(); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityTokenAuthenticator.cs
- Registry.cs
- Events.cs
- MD5CryptoServiceProvider.cs
- IssuedTokenClientBehaviorsElement.cs
- DummyDataSource.cs
- WindowsSysHeader.cs
- Overlapped.cs
- DataObjectCopyingEventArgs.cs
- NotFiniteNumberException.cs
- FrameworkContentElement.cs
- RoutedUICommand.cs
- StaticFileHandler.cs
- RulePatternOps.cs
- DeferredRunTextReference.cs
- SecurityResources.cs
- UnsafeNativeMethods.cs
- ClientProxyGenerator.cs
- PrtTicket_Base.cs
- WebBrowserUriTypeConverter.cs
- MimePart.cs
- AppSettingsSection.cs
- DeriveBytes.cs
- Formatter.cs
- ImportCatalogPart.cs
- CellQuery.cs
- dbdatarecord.cs
- DebugInfoGenerator.cs
- SynchronousReceiveElement.cs
- XmlSerializerFactory.cs
- DiscoveryService.cs
- Help.cs
- SectionRecord.cs
- ImpersonationContext.cs
- ProxyWebPartConnectionCollection.cs
- UnsafeNativeMethodsCLR.cs
- InkCanvasSelection.cs
- sqlinternaltransaction.cs
- SystemInformation.cs
- XNameTypeConverter.cs
- RepeatEnumerable.cs
- ReadOnlyCollection.cs
- MeshGeometry3D.cs
- XPathEmptyIterator.cs
- COM2PictureConverter.cs
- CookieParameter.cs
- PropertyDescriptor.cs
- ToolStripSettings.cs
- EncoderBestFitFallback.cs
- ComponentEditorPage.cs
- XmlSchemaSimpleContentRestriction.cs
- Control.cs
- WizardStepBase.cs
- MsmqOutputChannel.cs
- SocketElement.cs
- CreateUserWizardStep.cs
- MatcherBuilder.cs
- NumericUpDown.cs
- ImageSourceConverter.cs
- EntityContainerEmitter.cs
- ExpandableObjectConverter.cs
- DescendantQuery.cs
- WorkflowServiceHostFactory.cs
- RangeBase.cs
- CommandBinding.cs
- CodePropertyReferenceExpression.cs
- ColumnProvider.cs
- isolationinterop.cs
- PatternMatcher.cs
- XmlSchemaSimpleTypeList.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TrustSection.cs
- DataGridViewCellStyle.cs
- MetadataArtifactLoaderFile.cs
- CreateUserWizardStep.cs
- Executor.cs
- SamlAuthorityBinding.cs
- ScriptIgnoreAttribute.cs
- ByteRangeDownloader.cs
- StringArrayConverter.cs
- QueryReaderSettings.cs
- FormView.cs
- MetadataArtifactLoaderFile.cs
- AuthenticationModulesSection.cs
- TextServicesPropertyRanges.cs
- ItemList.cs
- SoapMessage.cs
- RuntimeHandles.cs
- NegatedCellConstant.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- NonPrimarySelectionGlyph.cs
- HostVisual.cs
- XDRSchema.cs
- X509ChainElement.cs
- StylusPlugInCollection.cs
- StreamWithDictionary.cs
- DataSourceHelper.cs
- Helper.cs
- WebPageTraceListener.cs