Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / 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
- Attributes.cs
- PropertyEmitterBase.cs
- DataSourceListEditor.cs
- NameValueSectionHandler.cs
- XamlBrushSerializer.cs
- ClientUrlResolverWrapper.cs
- XmlAttribute.cs
- WmlPanelAdapter.cs
- TraceData.cs
- LinqDataSourceView.cs
- CalendarItem.cs
- SymDocumentType.cs
- TypographyProperties.cs
- MulticastNotSupportedException.cs
- Rectangle.cs
- TypeConverterHelper.cs
- CompressedStack.cs
- RoleServiceManager.cs
- PropertyKey.cs
- RectValueSerializer.cs
- ContentTextAutomationPeer.cs
- InkCanvasInnerCanvas.cs
- CustomValidator.cs
- ComplexTypeEmitter.cs
- PageContent.cs
- PingOptions.cs
- OraclePermission.cs
- ServiceMemoryGates.cs
- BitmapPalettes.cs
- ToolStripSystemRenderer.cs
- CellTreeNode.cs
- LineServicesRun.cs
- Guid.cs
- COM2PropertyDescriptor.cs
- PathGeometry.cs
- SpeechRecognizer.cs
- DataBinder.cs
- BoundPropertyEntry.cs
- Transform3DCollection.cs
- WebHttpDispatchOperationSelector.cs
- OleDbRowUpdatedEvent.cs
- LicFileLicenseProvider.cs
- CornerRadiusConverter.cs
- WhitespaceRuleLookup.cs
- DataExpression.cs
- DataBoundControlParameterTarget.cs
- HebrewCalendar.cs
- MessagePropertyFilter.cs
- LayoutInformation.cs
- ArrayElementGridEntry.cs
- OutputCacheModule.cs
- Canvas.cs
- DynamicDataRouteHandler.cs
- Bold.cs
- GraphicsContext.cs
- HtmlInputCheckBox.cs
- ProfileGroupSettings.cs
- XmlQueryRuntime.cs
- EntityException.cs
- ExpressionBindingsDialog.cs
- UIPropertyMetadata.cs
- CryptoApi.cs
- AttachmentCollection.cs
- BulletedListDesigner.cs
- RegexMatch.cs
- AndMessageFilterTable.cs
- ParagraphVisual.cs
- PeerNameResolver.cs
- ResolveMatchesCD1.cs
- MsmqQueue.cs
- TimeManager.cs
- VersionedStream.cs
- StylusPointProperty.cs
- TargetControlTypeCache.cs
- HebrewNumber.cs
- ExternalCalls.cs
- DeadCharTextComposition.cs
- PrimitiveXmlSerializers.cs
- ClientBuildManagerCallback.cs
- FormViewActionList.cs
- ConfigurationSettings.cs
- VisualTreeHelper.cs
- RequiredFieldValidator.cs
- ProvidePropertyAttribute.cs
- XmlMembersMapping.cs
- DocumentPageView.cs
- SignatureConfirmations.cs
- MouseEventArgs.cs
- WindowsIdentity.cs
- QueryResultOp.cs
- BamlBinaryWriter.cs
- ListView.cs
- XsdBuildProvider.cs
- CodeChecksumPragma.cs
- DataControlImageButton.cs
- ItemAutomationPeer.cs
- Codec.cs
- MergeFailedEvent.cs
- SchemaMapping.cs
- AppDomainGrammarProxy.cs