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
- RulePatternOps.cs
- SectionUpdates.cs
- CallTemplateAction.cs
- Helpers.cs
- _NtlmClient.cs
- PrimitiveCodeDomSerializer.cs
- TimelineGroup.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ServiceMetadataBehavior.cs
- StorageAssociationSetMapping.cs
- ProgressBar.cs
- ArgIterator.cs
- StrongNameKeyPair.cs
- SqlTriggerAttribute.cs
- StructuredType.cs
- CompilerCollection.cs
- SourceChangedEventArgs.cs
- CoTaskMemUnicodeSafeHandle.cs
- nulltextnavigator.cs
- SqlDependency.cs
- PropertyGridDesigner.cs
- InkPresenterAutomationPeer.cs
- EmptyEnumerator.cs
- AutomationFocusChangedEventArgs.cs
- SerializationInfo.cs
- CodeStatement.cs
- GeometryValueSerializer.cs
- StandardToolWindows.cs
- _KerberosClient.cs
- ListManagerBindingsCollection.cs
- Window.cs
- ExpressionConverter.cs
- BorderSidesEditor.cs
- XmlCodeExporter.cs
- StylusPlugInCollection.cs
- NativeObjectSecurity.cs
- MatrixValueSerializer.cs
- CodePrimitiveExpression.cs
- EmptyReadOnlyDictionaryInternal.cs
- MenuEventArgs.cs
- MouseButtonEventArgs.cs
- SafeReadContext.cs
- TriggerCollection.cs
- CodeTypeParameter.cs
- AspNetHostingPermission.cs
- DateBoldEvent.cs
- odbcmetadatacolumnnames.cs
- GenericsNotImplementedException.cs
- RunWorkerCompletedEventArgs.cs
- ConfigurationManagerInternal.cs
- ElementHostAutomationPeer.cs
- PrimarySelectionAdorner.cs
- HMAC.cs
- ExecutionPropertyManager.cs
- UrlMapping.cs
- AsyncStreamReader.cs
- SchemaMapping.cs
- XamlTreeBuilder.cs
- DrawingState.cs
- DataContractSet.cs
- FunctionMappingTranslator.cs
- DBConnectionString.cs
- RC2.cs
- ProxyElement.cs
- WebProxyScriptElement.cs
- PassportIdentity.cs
- SystemDiagnosticsSection.cs
- WeakReferenceList.cs
- TextBreakpoint.cs
- XmlUtilWriter.cs
- CaseKeyBox.xaml.cs
- HttpCachePolicyWrapper.cs
- LinqDataSourceContextEventArgs.cs
- PartialClassGenerationTask.cs
- MetadataCollection.cs
- JournalEntryListConverter.cs
- CounterSample.cs
- Win32Interop.cs
- infer.cs
- HttpListenerException.cs
- _NetworkingPerfCounters.cs
- HtmlLinkAdapter.cs
- VirtualizingStackPanel.cs
- AttributeXamlType.cs
- TextElementEditingBehaviorAttribute.cs
- TrackingMemoryStreamFactory.cs
- AssociationTypeEmitter.cs
- ConfigurationValue.cs
- DataGridViewAccessibleObject.cs
- FrameworkContextData.cs
- ServicePoint.cs
- JapaneseLunisolarCalendar.cs
- UnsafePeerToPeerMethods.cs
- FormViewModeEventArgs.cs
- DefaultBindingPropertyAttribute.cs
- CodeAttributeArgument.cs
- FixedTextPointer.cs
- WebPartMenuStyle.cs
- DateTime.cs
- TextWriterEngine.cs