Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- OdbcParameterCollection.cs
- BinaryReader.cs
- SqlSelectStatement.cs
- SuspendDesigner.cs
- UIElement3DAutomationPeer.cs
- SafeIUnknown.cs
- DesignTimeVisibleAttribute.cs
- HtmlWindowCollection.cs
- ProxyWebPart.cs
- DescendantOverDescendantQuery.cs
- Regex.cs
- SqlServices.cs
- AutomationPropertyInfo.cs
- XmlUtil.cs
- RandomDelaySendsAsyncResult.cs
- BooleanAnimationBase.cs
- SystemWebSectionGroup.cs
- ParagraphResult.cs
- NameValuePair.cs
- DataGridViewLayoutData.cs
- ResourceDescriptionAttribute.cs
- FixUpCollection.cs
- SqlDataSourceTableQuery.cs
- Privilege.cs
- BorderGapMaskConverter.cs
- ValueQuery.cs
- TextBoxLine.cs
- XmlSchemaRedefine.cs
- ControlCachePolicy.cs
- HttpModuleCollection.cs
- PageBuildProvider.cs
- OrderByQueryOptionExpression.cs
- LicenseException.cs
- SecurityStateEncoder.cs
- BitmapEffectCollection.cs
- SoapTypeAttribute.cs
- DesignerDataView.cs
- ISFTagAndGuidCache.cs
- TimerElapsedEvenArgs.cs
- TextEncodedRawTextWriter.cs
- DateTimeValueSerializerContext.cs
- SamlSecurityToken.cs
- CultureInfoConverter.cs
- AppSettingsExpressionBuilder.cs
- IsolatedStorageException.cs
- FixedElement.cs
- formatstringdialog.cs
- DocumentReference.cs
- DataBindingsDialog.cs
- TextMetrics.cs
- recordstate.cs
- _AutoWebProxyScriptEngine.cs
- Table.cs
- CertificateManager.cs
- RegexParser.cs
- DbCommandTree.cs
- DetailsViewModeEventArgs.cs
- WizardForm.cs
- DefaultBinder.cs
- UserInitiatedNavigationPermission.cs
- XmlObjectSerializerContext.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- ParserExtension.cs
- TransformedBitmap.cs
- ColorAnimationUsingKeyFrames.cs
- RemoteEndpointMessageProperty.cs
- WindowsSlider.cs
- XpsFixedPageReaderWriter.cs
- AccessDataSourceView.cs
- PolyLineSegment.cs
- SynchronizedDispatch.cs
- HotSpot.cs
- MediaContextNotificationWindow.cs
- TransformerConfigurationWizardBase.cs
- ClientRoleProvider.cs
- TargetException.cs
- XXXOnTypeBuilderInstantiation.cs
- WindowsNonControl.cs
- DataGridAutomationPeer.cs
- SharedPersonalizationStateInfo.cs
- SchemaCollectionCompiler.cs
- EdmError.cs
- Subtree.cs
- CodeDirectionExpression.cs
- ImageDrawing.cs
- SHA1Managed.cs
- ManipulationLogic.cs
- BmpBitmapEncoder.cs
- DefaultWorkflowLoaderService.cs
- ToolStripItemEventArgs.cs
- SourceElementsCollection.cs
- DataBoundControlParameterTarget.cs
- TemplateField.cs
- complextypematerializer.cs
- SqlTriggerAttribute.cs
- MessageEncoder.cs
- TypeBuilderInstantiation.cs
- ListChangedEventArgs.cs
- CompareValidator.cs
- FileLogRecordEnumerator.cs