Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / ReadOnlyDictionary.cs / 1 / ReadOnlyDictionary.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; namespace System.Speech.Internal { internal class ReadOnlyDictionary: IDictionary { public int Count { get { return _dictionary.Count; } } public IEnumerator > GetEnumerator () { return _dictionary.GetEnumerator (); } public V this [K key] { get { return _dictionary [key]; } set { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } } // Other methods are a pass through to the underlying collection: public bool IsReadOnly { get { return true; } } public bool Contains (KeyValuePair key) { return _dictionary.ContainsKey (key.Key); } public bool ContainsKey (K key) { return _dictionary.ContainsKey (key); } public void CopyTo (KeyValuePair [] array, int index) { ((ICollection >) _dictionary).CopyTo (array, index); } public ICollection Keys { // According to the source of IDictionary.Keys this is a read-only collection. get { return _dictionary.Keys; } } public ICollection Values { // According to the source of IDictionary.Keys this is a read-write collection, // but is a copy of the main dictionary so there's no way to change anything in the main collection. get { return _dictionary.Values; } } // Read-only collection so throw on these methods: public void Add (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Add (K key, V value) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Clear () { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (K key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } IEnumerator IEnumerable.GetEnumerator () { return ((IEnumerable >) this).GetEnumerator (); } bool IDictionary .TryGetValue (K key, out V value) { return InternalDictionary.TryGetValue (key, out value); } // Allow internal code to manipulate internal collection internal Dictionary InternalDictionary { get { return _dictionary; } //set { _dictionary = value; } } private Dictionary _dictionary = new Dictionary (); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; namespace System.Speech.Internal { internal class ReadOnlyDictionary: IDictionary { public int Count { get { return _dictionary.Count; } } public IEnumerator > GetEnumerator () { return _dictionary.GetEnumerator (); } public V this [K key] { get { return _dictionary [key]; } set { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } } // Other methods are a pass through to the underlying collection: public bool IsReadOnly { get { return true; } } public bool Contains (KeyValuePair key) { return _dictionary.ContainsKey (key.Key); } public bool ContainsKey (K key) { return _dictionary.ContainsKey (key); } public void CopyTo (KeyValuePair [] array, int index) { ((ICollection >) _dictionary).CopyTo (array, index); } public ICollection Keys { // According to the source of IDictionary.Keys this is a read-only collection. get { return _dictionary.Keys; } } public ICollection Values { // According to the source of IDictionary.Keys this is a read-write collection, // but is a copy of the main dictionary so there's no way to change anything in the main collection. get { return _dictionary.Values; } } // Read-only collection so throw on these methods: public void Add (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Add (K key, V value) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Clear () { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (K key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } IEnumerator IEnumerable.GetEnumerator () { return ((IEnumerable >) this).GetEnumerator (); } bool IDictionary .TryGetValue (K key, out V value) { return InternalDictionary.TryGetValue (key, out value); } // Allow internal code to manipulate internal collection internal Dictionary InternalDictionary { get { return _dictionary; } //set { _dictionary = value; } } private Dictionary _dictionary = new Dictionary (); } } // 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
- DataGridViewHitTestInfo.cs
- DataError.cs
- TranslateTransform3D.cs
- ProfileSettings.cs
- DateTimeConverter.cs
- EqualityComparer.cs
- StructureChangedEventArgs.cs
- OdbcStatementHandle.cs
- Renderer.cs
- activationcontext.cs
- ExceptionAggregator.cs
- ExpressionNormalizer.cs
- DataObject.cs
- DeclarativeCatalogPart.cs
- SystemUnicastIPAddressInformation.cs
- CodeComment.cs
- FixedDocument.cs
- RemotingClientProxy.cs
- Cursor.cs
- TextElementCollectionHelper.cs
- Control.cs
- ToolboxDataAttribute.cs
- GeometryConverter.cs
- SID.cs
- Parameter.cs
- OracleCommand.cs
- XmlCharacterData.cs
- Window.cs
- ViewSimplifier.cs
- WpfWebRequestHelper.cs
- WebServiceMethodData.cs
- VectorAnimationUsingKeyFrames.cs
- Codec.cs
- WebResourceUtil.cs
- AccessedThroughPropertyAttribute.cs
- DataGridColumn.cs
- ExpressionPrefixAttribute.cs
- PersonalizationStateInfo.cs
- OpenTypeLayoutCache.cs
- FormsAuthenticationEventArgs.cs
- KnownTypesHelper.cs
- UserControl.cs
- RowUpdatedEventArgs.cs
- ListBindingConverter.cs
- PathFigureCollection.cs
- FormViewAutoFormat.cs
- ProgressBar.cs
- SelectionItemProviderWrapper.cs
- UIPermission.cs
- KeyedCollection.cs
- KoreanCalendar.cs
- ActionFrame.cs
- GridViewColumnHeader.cs
- SymLanguageVendor.cs
- BufferedGraphicsManager.cs
- SqlFormatter.cs
- NotifyIcon.cs
- ExpanderAutomationPeer.cs
- WebPartVerbsEventArgs.cs
- HttpDictionary.cs
- XMLDiffLoader.cs
- ProviderMetadataCachedInformation.cs
- DropShadowBitmapEffect.cs
- DataGridLengthConverter.cs
- CopyOnWriteList.cs
- PathFigure.cs
- ChannelBinding.cs
- RepeatButton.cs
- EUCJPEncoding.cs
- EventDescriptor.cs
- XmlSerializerFactory.cs
- DocumentPageViewAutomationPeer.cs
- DataGridViewCellStyleConverter.cs
- PropertyPath.cs
- DataGridViewCellLinkedList.cs
- NativeMethods.cs
- WebPartAddingEventArgs.cs
- WindowsGraphics2.cs
- VSWCFServiceContractGenerator.cs
- WebPartsPersonalizationAuthorization.cs
- serverconfig.cs
- CheckPair.cs
- AstTree.cs
- PermissionSet.cs
- GlyphTypeface.cs
- BitmapMetadata.cs
- StatusStrip.cs
- ProgressBarBrushConverter.cs
- ImageField.cs
- BehaviorEditorPart.cs
- TemplatePagerField.cs
- BaseCodeDomTreeGenerator.cs
- WebPartTransformerAttribute.cs
- SelectionUIService.cs
- RegexWorker.cs
- BaseTypeViewSchema.cs
- DateTime.cs
- XmlnsDefinitionAttribute.cs
- XmlComment.cs
- assemblycache.cs