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
- BaseHashHelper.cs
- RangeBaseAutomationPeer.cs
- ToolStripDropDownButton.cs
- InputLanguage.cs
- OleDbReferenceCollection.cs
- ClientRuntimeConfig.cs
- SoapExtension.cs
- TableRowGroupCollection.cs
- EntityDataSourceDataSelectionPanel.cs
- SrgsSubset.cs
- MatrixCamera.cs
- ControlParser.cs
- VideoDrawing.cs
- CodeMemberEvent.cs
- WsdlImporterElementCollection.cs
- AccessViolationException.cs
- SettingsAttributes.cs
- TextTreeFixupNode.cs
- InvalidStoreProtectionKeyException.cs
- Function.cs
- XappLauncher.cs
- ConsumerConnectionPointCollection.cs
- CommandPlan.cs
- SchemaContext.cs
- UnionCqlBlock.cs
- SimpleHandlerBuildProvider.cs
- HeaderedItemsControl.cs
- ObjectIDGenerator.cs
- StrokeCollectionDefaultValueFactory.cs
- XpsFixedPageReaderWriter.cs
- ActivationWorker.cs
- ToolStripDropDownClosedEventArgs.cs
- WebPartEventArgs.cs
- NegationPusher.cs
- HostAdapter.cs
- Expressions.cs
- SessionPageStatePersister.cs
- EntitySetDataBindingList.cs
- CommonXSendMessage.cs
- TableLayoutPanelCellPosition.cs
- GatewayDefinition.cs
- StringComparer.cs
- StaticExtension.cs
- ConnectionPoint.cs
- WindowsFormsHelpers.cs
- MessageLoggingFilterTraceRecord.cs
- ComplexLine.cs
- EventHandlingScope.cs
- ActivityInstanceMap.cs
- OletxTransactionHeader.cs
- DataColumnMappingCollection.cs
- PageContentAsyncResult.cs
- HMACSHA384.cs
- CannotUnloadAppDomainException.cs
- DockProviderWrapper.cs
- QilReference.cs
- RuntimeEnvironment.cs
- ComNativeDescriptor.cs
- WebDescriptionAttribute.cs
- FrameworkContentElementAutomationPeer.cs
- NumericUpDownAccelerationCollection.cs
- XPathEmptyIterator.cs
- XmlObjectSerializerContext.cs
- LinkedDataMemberFieldEditor.cs
- CodeGeneratorOptions.cs
- ArithmeticException.cs
- XmlDataSource.cs
- HitTestWithGeometryDrawingContextWalker.cs
- MultiView.cs
- MenuItem.cs
- HMACSHA256.cs
- StreamSecurityUpgradeProvider.cs
- IERequestCache.cs
- SingleBodyParameterMessageFormatter.cs
- ColorBuilder.cs
- _ProxyChain.cs
- RetrieveVirtualItemEventArgs.cs
- LayoutEditorPart.cs
- CodeRemoveEventStatement.cs
- CodeEntryPointMethod.cs
- FormParameter.cs
- XmlQueryType.cs
- LineGeometry.cs
- CompositeDataBoundControl.cs
- SelectionEditingBehavior.cs
- ToolboxItemCollection.cs
- EntityCollectionChangedParams.cs
- PaintEvent.cs
- StringFunctions.cs
- Resources.Designer.cs
- TextServicesContext.cs
- QuerySafeNavigator.cs
- PropertyValueUIItem.cs
- SqlTransaction.cs
- ContractMethodInfo.cs
- Selection.cs
- ArraySegment.cs
- IdentityReference.cs
- _LocalDataStoreMgr.cs
- LocatorPartList.cs