Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / ReadOnlyDictionary.cs / 1305376 / ReadOnlyDictionary.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime { using System.Collections; using System.Collections.Generic; [Serializable] class ReadOnlyDictionary: IDictionary { IDictionary dictionary; public ReadOnlyDictionary(IDictionary dictionary) : this(dictionary, true) { } public ReadOnlyDictionary(IDictionary dictionary, bool makeCopy) { if (makeCopy) { this.dictionary = new Dictionary (dictionary); } else { this.dictionary = dictionary; } } public int Count { get { return this.dictionary.Count; } } public bool IsReadOnly { get { return true; } } public ICollection Keys { get { return this.dictionary.Keys; } } public ICollection Values { get { return this.dictionary.Values; } } public TValue this[TKey key] { get { return this.dictionary[key]; } set { throw Fx.Exception.AsError(CreateReadOnlyException()); } } public static IDictionary Create(IDictionary dictionary) { if (dictionary.IsReadOnly) { return dictionary; } else { return new ReadOnlyDictionary (dictionary); } } Exception CreateReadOnlyException() { return new InvalidOperationException(SRCore.DictionaryIsReadOnly); } public void Add(TKey key, TValue value) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Add(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Clear() { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Contains(KeyValuePair item) { return this.dictionary.Contains(item); } public bool ContainsKey(TKey key) { return this.dictionary.ContainsKey(key); } public void CopyTo(KeyValuePair [] array, int arrayIndex) { this.dictionary.CopyTo(array, arrayIndex); } public IEnumerator > GetEnumerator() { return this.dictionary.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } public bool Remove(TKey key) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Remove(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool TryGetValue(TKey key, out TValue value) { return this.dictionary.TryGetValue(key, out value); } } } // 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
- VirtualPathProvider.cs
- DbTransaction.cs
- DecoderNLS.cs
- FixedSOMElement.cs
- TargetException.cs
- PropertyBuilder.cs
- BuilderInfo.cs
- ToolStripInSituService.cs
- IgnoreFlushAndCloseStream.cs
- FormViewInsertEventArgs.cs
- FixedSOMImage.cs
- ExternalCalls.cs
- UpdateExpressionVisitor.cs
- InputLangChangeEvent.cs
- RadioButton.cs
- TableLayoutCellPaintEventArgs.cs
- SafeLocalMemHandle.cs
- MappingSource.cs
- Module.cs
- DbConnectionHelper.cs
- SQLInt64.cs
- NativeActivity.cs
- Point3D.cs
- BooleanToVisibilityConverter.cs
- WindowsListViewGroupHelper.cs
- AssemblyBuilder.cs
- SimpleWebHandlerParser.cs
- AutoGeneratedFieldProperties.cs
- Decorator.cs
- DecimalConverter.cs
- GlyphRunDrawing.cs
- Timer.cs
- HttpListenerException.cs
- EqualityArray.cs
- PointCollection.cs
- ExternalCalls.cs
- SerialStream.cs
- SafeUserTokenHandle.cs
- ApplicationServiceHelper.cs
- Attributes.cs
- PageThemeParser.cs
- UnsupportedPolicyOptionsException.cs
- WebPartHeaderCloseVerb.cs
- SafeRightsManagementQueryHandle.cs
- QueryTaskGroupState.cs
- EventTrigger.cs
- XmlAnyElementAttribute.cs
- DbgCompiler.cs
- XmlSerializerFactory.cs
- Vector3DAnimation.cs
- WorkflowInstance.cs
- TextCompositionEventArgs.cs
- BitmapEffectDrawing.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ServiceControllerDesigner.cs
- HostSecurityManager.cs
- SerialPort.cs
- QueryModel.cs
- XPathAxisIterator.cs
- XmlParserContext.cs
- GridViewCommandEventArgs.cs
- MemoryStream.cs
- WorkflowMarkupSerializer.cs
- SqlCommandBuilder.cs
- GenericWebPart.cs
- NameNode.cs
- DocumentAutomationPeer.cs
- BitmapMetadataBlob.cs
- GridSplitter.cs
- MessagingDescriptionAttribute.cs
- DefaultBindingPropertyAttribute.cs
- XmlSiteMapProvider.cs
- ConfigPathUtility.cs
- codemethodreferenceexpression.cs
- EUCJPEncoding.cs
- TraceSection.cs
- DefaultValueTypeConverter.cs
- PlacementWorkspace.cs
- Dispatcher.cs
- XmlSchemaComplexContentExtension.cs
- DesignerDataTable.cs
- SerializationSectionGroup.cs
- Msmq4PoisonHandler.cs
- Point3DAnimationUsingKeyFrames.cs
- BaseHashHelper.cs
- ControllableStoryboardAction.cs
- MDIWindowDialog.cs
- DbMetaDataColumnNames.cs
- ToolStripProgressBar.cs
- DateTimeFormat.cs
- InternalBufferManager.cs
- UInt32.cs
- VoiceInfo.cs
- SqlCommandBuilder.cs
- SafeLocalMemHandle.cs
- DataGridViewElement.cs
- DataTablePropertyDescriptor.cs
- MostlySingletonList.cs
- TreeNodeBindingCollection.cs
- MatrixUtil.cs