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
- BrowsableAttribute.cs
- StatusBarItemAutomationPeer.cs
- CodeAttributeArgumentCollection.cs
- TransactionFlowBindingElementImporter.cs
- CharacterBuffer.cs
- CompositeFontFamily.cs
- AttachInfo.cs
- TextParagraphProperties.cs
- ObjectManager.cs
- ProcessModuleCollection.cs
- ScriptingJsonSerializationSection.cs
- CompilerGlobalScopeAttribute.cs
- DetailsViewRowCollection.cs
- HttpDebugHandler.cs
- securitycriticaldataformultiplegetandset.cs
- SpecialFolderEnumConverter.cs
- SystemParameters.cs
- ManagementBaseObject.cs
- Axis.cs
- ConfigurationValues.cs
- TextBoxBase.cs
- HttpClientCertificate.cs
- DataGridViewLayoutData.cs
- SoapSchemaExporter.cs
- DiscoveryClientChannelBase.cs
- ToolstripProfessionalRenderer.cs
- ChtmlTextWriter.cs
- PluralizationServiceUtil.cs
- SignatureHelper.cs
- MbpInfo.cs
- IndividualDeviceConfig.cs
- DataSourceProvider.cs
- DocumentSchemaValidator.cs
- Root.cs
- TaiwanCalendar.cs
- PrimarySelectionGlyph.cs
- SeekStoryboard.cs
- AxisAngleRotation3D.cs
- TypographyProperties.cs
- WebResourceAttribute.cs
- MouseActionValueSerializer.cs
- CatalogPart.cs
- ArgumentsParser.cs
- StorageAssociationTypeMapping.cs
- ManagementPath.cs
- AttachmentService.cs
- _SafeNetHandles.cs
- WindowsFormsSectionHandler.cs
- IntellisenseTextBox.designer.cs
- ControlAdapter.cs
- PagedDataSource.cs
- EncoderBestFitFallback.cs
- Transform3D.cs
- DriveInfo.cs
- EncoderNLS.cs
- WSSecurityPolicy.cs
- WebException.cs
- SoapBinding.cs
- SearchForVirtualItemEventArgs.cs
- FormCollection.cs
- WmpBitmapDecoder.cs
- _AutoWebProxyScriptEngine.cs
- CssTextWriter.cs
- OdbcErrorCollection.cs
- XmlUrlResolver.cs
- FileSystemWatcher.cs
- DropDownList.cs
- HostedTransportConfigurationManager.cs
- GrammarBuilderRuleRef.cs
- MimeMapping.cs
- DataGridViewCellFormattingEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- DefaultDiscoveryServiceExtension.cs
- FormViewDeletedEventArgs.cs
- TextViewBase.cs
- KnownTypeDataContractResolver.cs
- EncoderNLS.cs
- TemplateFactory.cs
- SamlNameIdentifierClaimResource.cs
- WebPartEditorCancelVerb.cs
- ContextMenu.cs
- WindowsGraphicsWrapper.cs
- TerminateDesigner.cs
- TypedReference.cs
- Walker.cs
- ConfigurationLockCollection.cs
- XPathBuilder.cs
- ComboBox.cs
- TextServicesLoader.cs
- CompletionBookmark.cs
- RangeValuePatternIdentifiers.cs
- IdnMapping.cs
- UiaCoreProviderApi.cs
- Processor.cs
- Section.cs
- Inline.cs
- TreeNodeStyleCollectionEditor.cs
- SQLBoolean.cs
- WebPartZoneBaseDesigner.cs
- RunInstallerAttribute.cs