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
- SymmetricSecurityBindingElement.cs
- InputScopeAttribute.cs
- WindowsStatic.cs
- CodeIdentifier.cs
- LinkedResourceCollection.cs
- GeneralTransform3DTo2D.cs
- FlowDocumentReader.cs
- RegexFCD.cs
- ServiceDurableInstanceContextProvider.cs
- DragSelectionMessageFilter.cs
- PenContexts.cs
- MsmqEncryptionAlgorithm.cs
- OracleBinary.cs
- TreeNode.cs
- EtwTrace.cs
- ReadOnlyMetadataCollection.cs
- ExpiredSecurityTokenException.cs
- TextLine.cs
- ConfigurationLockCollection.cs
- UnauthorizedAccessException.cs
- ExpressionBuilder.cs
- EntityDesignerDataSourceView.cs
- ListBoxAutomationPeer.cs
- StrongNameIdentityPermission.cs
- WebPartTransformer.cs
- PtsHelper.cs
- DataColumnCollection.cs
- DeviceContexts.cs
- ManifestResourceInfo.cs
- IRCollection.cs
- ExpressionQuoter.cs
- ProfileSettings.cs
- CompositeActivityTypeDescriptor.cs
- DbConnectionFactory.cs
- FontWeight.cs
- ColumnHeaderConverter.cs
- ADConnectionHelper.cs
- CriticalFinalizerObject.cs
- ReferenceEqualityComparer.cs
- ToolStripContentPanelRenderEventArgs.cs
- BinaryFormatterSinks.cs
- InkPresenter.cs
- SmuggledIUnknown.cs
- EnumValAlphaComparer.cs
- DirectoryObjectSecurity.cs
- EndpointAddressMessageFilter.cs
- XmlQualifiedNameTest.cs
- DefaultProxySection.cs
- RelatedView.cs
- SerializationException.cs
- SynchronizedDispatch.cs
- ResourceContainer.cs
- UnionCqlBlock.cs
- CngKeyCreationParameters.cs
- ObjectConverter.cs
- ToolStripItem.cs
- AuditLog.cs
- WebPartsPersonalizationAuthorization.cs
- FixedDocumentSequencePaginator.cs
- XmlSerializerSection.cs
- EntityClientCacheEntry.cs
- Point.cs
- _AcceptOverlappedAsyncResult.cs
- ByteAnimationUsingKeyFrames.cs
- SkinBuilder.cs
- Error.cs
- MulticastOption.cs
- SemanticResolver.cs
- RowSpanVector.cs
- TraversalRequest.cs
- RevocationPoint.cs
- Point3DCollectionValueSerializer.cs
- BasicHttpMessageSecurityElement.cs
- SQLBoolean.cs
- FileEnumerator.cs
- ComponentConverter.cs
- FileLoadException.cs
- MenuItemAutomationPeer.cs
- EditorAttribute.cs
- BufferBuilder.cs
- StrokeNodeData.cs
- ACL.cs
- AdRotator.cs
- ArglessEventHandlerProxy.cs
- OleServicesContext.cs
- TextRangeProviderWrapper.cs
- BooleanSwitch.cs
- COM2IPerPropertyBrowsingHandler.cs
- complextypematerializer.cs
- FontResourceCache.cs
- SslStream.cs
- cache.cs
- Transform3DCollection.cs
- SQLBytes.cs
- ProxyFragment.cs
- WebControl.cs
- WindowsImpersonationContext.cs
- SignatureHelper.cs
- Vars.cs
- userdatakeys.cs