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
- Profiler.cs
- unitconverter.cs
- DataListItemCollection.cs
- FastEncoder.cs
- DBCommand.cs
- EmptyTextWriter.cs
- AuthenticationSection.cs
- Duration.cs
- ToolZoneDesigner.cs
- Stream.cs
- MetadataUtil.cs
- InvokePattern.cs
- RuntimeHelpers.cs
- CriticalExceptions.cs
- DataServiceQuery.cs
- NativeCompoundFileAPIs.cs
- PropertyItem.cs
- validation.cs
- ViewManager.cs
- TemplateModeChangedEventArgs.cs
- Renderer.cs
- CFGGrammar.cs
- SequenceDesignerAccessibleObject.cs
- HotSpot.cs
- GroupByExpressionRewriter.cs
- Type.cs
- ScriptManagerProxy.cs
- PageEventArgs.cs
- SimpleColumnProvider.cs
- PlainXmlWriter.cs
- BlockCollection.cs
- ItemsControlAutomationPeer.cs
- DebugView.cs
- SimpleBitVector32.cs
- DispatcherFrame.cs
- SqlDataSourceEnumerator.cs
- SqlFactory.cs
- InvalidDataException.cs
- AttachedPropertyMethodSelector.cs
- RIPEMD160Managed.cs
- Convert.cs
- TextBoxLine.cs
- XmlSchemaSet.cs
- WindowsListViewItem.cs
- TiffBitmapEncoder.cs
- TextEditorTyping.cs
- Pen.cs
- EndpointReference.cs
- CustomBinding.cs
- Zone.cs
- ChangeConflicts.cs
- EntityKeyElement.cs
- WeakEventTable.cs
- TdsRecordBufferSetter.cs
- Helpers.cs
- OleTxTransaction.cs
- Region.cs
- Point3DCollection.cs
- VariableAction.cs
- WorkflowValidationFailedException.cs
- ProxyGenerationError.cs
- PasswordTextNavigator.cs
- InvokeMethod.cs
- ManagedFilter.cs
- Section.cs
- QilGeneratorEnv.cs
- IRCollection.cs
- FontStyle.cs
- WsdlBuildProvider.cs
- Trigger.cs
- PolyLineSegment.cs
- MenuItemBinding.cs
- GCHandleCookieTable.cs
- ListControlBoundActionList.cs
- XmlWriter.cs
- SpoolingTask.cs
- XmlSchemaAnyAttribute.cs
- BinaryObjectWriter.cs
- Binding.cs
- XmlNullResolver.cs
- LogicalExpr.cs
- ResourceExpressionBuilder.cs
- CacheForPrimitiveTypes.cs
- Events.cs
- DataGridViewColumnTypeEditor.cs
- DisableDpiAwarenessAttribute.cs
- QueryStack.cs
- NavigationPropertyAccessor.cs
- SystemIPv6InterfaceProperties.cs
- NavigationCommands.cs
- ProcessRequestArgs.cs
- SqlTypeSystemProvider.cs
- LiteralControl.cs
- AutomationElement.cs
- DateTimeUtil.cs
- SqlNodeTypeOperators.cs
- SQLDoubleStorage.cs
- HttpClientCertificate.cs
- ObjectViewListener.cs
- View.cs