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
- MaskInputRejectedEventArgs.cs
- RuntimeCompatibilityAttribute.cs
- SparseMemoryStream.cs
- EpmContentDeSerializer.cs
- HttpPostServerProtocol.cs
- loginstatus.cs
- HtmlCalendarAdapter.cs
- DateTimeParse.cs
- MetadataCache.cs
- DiffuseMaterial.cs
- AssemblyHash.cs
- ReferenceEqualityComparer.cs
- ServicePointManagerElement.cs
- MobileErrorInfo.cs
- ResXResourceReader.cs
- HtmlElementCollection.cs
- StringDictionaryEditor.cs
- CompModSwitches.cs
- RawMouseInputReport.cs
- AttributeUsageAttribute.cs
- XmlIncludeAttribute.cs
- KnownBoxes.cs
- InputLangChangeRequestEvent.cs
- SelectionEditor.cs
- PopupEventArgs.cs
- LayoutUtils.cs
- LeaseManager.cs
- DesignTimeTemplateParser.cs
- SourceChangedEventArgs.cs
- OutputChannel.cs
- Image.cs
- LogAppendAsyncResult.cs
- Collection.cs
- SchemaMapping.cs
- Rotation3DAnimationUsingKeyFrames.cs
- SystemNetHelpers.cs
- UIElement3D.cs
- KeyProperty.cs
- FileResponseElement.cs
- CodeNamespaceCollection.cs
- WindowsSolidBrush.cs
- CookieParameter.cs
- DbDataAdapter.cs
- TransactionFlowBindingElement.cs
- AnnotationStore.cs
- HttpsTransportElement.cs
- Int32Rect.cs
- WmlFormAdapter.cs
- LoginName.cs
- SafeSecurityHandles.cs
- MemberCollection.cs
- ChannelPoolSettings.cs
- ImageSourceValueSerializer.cs
- FixedDocumentSequencePaginator.cs
- TransactedReceiveScope.cs
- TrackBar.cs
- DataGridParentRows.cs
- TraceContextEventArgs.cs
- ToolStripLocationCancelEventArgs.cs
- GeometryCombineModeValidation.cs
- ControlBindingsCollection.cs
- SmiRecordBuffer.cs
- RootBrowserWindow.cs
- SqlClientWrapperSmiStream.cs
- SafeCoTaskMem.cs
- _SingleItemRequestCache.cs
- ImageUrlEditor.cs
- PointConverter.cs
- WindowsRichEdit.cs
- WebMessageEncodingElement.cs
- ReadWriteSpinLock.cs
- TabItemWrapperAutomationPeer.cs
- WinFormsSecurity.cs
- CardSpaceException.cs
- ToggleButton.cs
- VideoDrawing.cs
- DetailsViewDesigner.cs
- UInt32Storage.cs
- SharedPersonalizationStateInfo.cs
- WebConfigManager.cs
- WebPartDeleteVerb.cs
- ReflectTypeDescriptionProvider.cs
- ImagingCache.cs
- SqlDataSourceSummaryPanel.cs
- GridSplitter.cs
- HttpFileCollectionWrapper.cs
- MSAANativeProvider.cs
- MsmqTransportSecurityElement.cs
- Directory.cs
- clipboard.cs
- AffineTransform3D.cs
- TrustLevelCollection.cs
- StylusPointProperties.cs
- BaseHashHelper.cs
- RestHandler.cs
- PKCS1MaskGenerationMethod.cs
- TraceSource.cs
- XamlBrushSerializer.cs
- StorageMappingFragment.cs
- HttpFileCollection.cs