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
- ContentIterators.cs
- BrowserInteropHelper.cs
- DmlSqlGenerator.cs
- DbFunctionCommandTree.cs
- ByteConverter.cs
- CompiledELinqQueryState.cs
- RuntimeWrappedException.cs
- AuthenticationService.cs
- FormsAuthenticationUserCollection.cs
- ButtonChrome.cs
- WindowsIPAddress.cs
- ZoneLinkButton.cs
- UserPreferenceChangingEventArgs.cs
- DrawingGroup.cs
- ConnectionManagementSection.cs
- RowToFieldTransformer.cs
- X509Extension.cs
- DeflateStream.cs
- InternalBufferManager.cs
- SID.cs
- PropertyMetadata.cs
- TemplateGroupCollection.cs
- FixedDSBuilder.cs
- DesignTimeData.cs
- DesignerLoader.cs
- EntityContainer.cs
- XhtmlMobileTextWriter.cs
- CompositeKey.cs
- MessageQueuePermissionAttribute.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- DataGridViewCellStyleChangedEventArgs.cs
- FrameSecurityDescriptor.cs
- WebPartMinimizeVerb.cs
- JsonUriDataContract.cs
- AppLevelCompilationSectionCache.cs
- Size.cs
- DateTimeConverter2.cs
- followingquery.cs
- EntityDataSourceSelectedEventArgs.cs
- PenContexts.cs
- DataTableClearEvent.cs
- QilLiteral.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DbConnectionStringBuilder.cs
- ItemContainerGenerator.cs
- TempEnvironment.cs
- Message.cs
- AnimationClock.cs
- BCLDebug.cs
- BitmapEffectInputData.cs
- WorkflowInlining.cs
- CacheDependency.cs
- NewItemsContextMenuStrip.cs
- linebase.cs
- QuadraticBezierSegment.cs
- RIPEMD160Managed.cs
- SortedDictionary.cs
- CssStyleCollection.cs
- PropertyPathConverter.cs
- ThicknessAnimationUsingKeyFrames.cs
- CursorInteropHelper.cs
- EntityDataSource.cs
- PrimaryKeyTypeConverter.cs
- TableRowGroup.cs
- CodeEntryPointMethod.cs
- HtmlForm.cs
- TableParaClient.cs
- DoubleAnimationClockResource.cs
- XNodeNavigator.cs
- LinkTarget.cs
- ProfileSettingsCollection.cs
- PageBuildProvider.cs
- HttpProfileBase.cs
- DummyDataSource.cs
- FileDetails.cs
- TemplateControlBuildProvider.cs
- DrawingBrush.cs
- BindingSource.cs
- MultipartContentParser.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- SerializationAttributes.cs
- ContextTokenTypeConverter.cs
- ModelToObjectValueConverter.cs
- IApplicationTrustManager.cs
- controlskin.cs
- ApplicationHost.cs
- XmlDigitalSignatureProcessor.cs
- AxHost.cs
- MSAAEventDispatcher.cs
- HtmlFormWrapper.cs
- AttachedPropertyBrowsableAttribute.cs
- Visual3D.cs
- FormatConvertedBitmap.cs
- DrawingCollection.cs
- ArglessEventHandlerProxy.cs
- TextTreeUndo.cs
- StrokeRenderer.cs
- OleDbTransaction.cs
- ErrorWebPart.cs
- DebuggerAttributes.cs