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
- VirtualPathUtility.cs
- XPathMessageFilterElement.cs
- TranslateTransform.cs
- OdbcEnvironmentHandle.cs
- Scripts.cs
- HijriCalendar.cs
- ListViewTableRow.cs
- ExeContext.cs
- RoleManagerModule.cs
- EndpointDispatcher.cs
- Semaphore.cs
- ProxyWebPartConnectionCollection.cs
- DataBindingHandlerAttribute.cs
- TableLayoutPanelCellPosition.cs
- Crypto.cs
- ExpressionPrinter.cs
- ByteStreamMessageUtility.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- ToolboxComponentsCreatedEventArgs.cs
- IndexedEnumerable.cs
- IPEndPointCollection.cs
- XmlDocumentSerializer.cs
- TextElementEditingBehaviorAttribute.cs
- Accessible.cs
- DateTimeParse.cs
- ColumnResult.cs
- TextElementAutomationPeer.cs
- LocalBuilder.cs
- lengthconverter.cs
- CallSiteHelpers.cs
- StringSource.cs
- TypeSystem.cs
- DataObjectSettingDataEventArgs.cs
- CompiledXpathExpr.cs
- VersionedStream.cs
- IOException.cs
- DBDataPermission.cs
- ControlPropertyNameConverter.cs
- ThousandthOfEmRealPoints.cs
- AccessDataSourceView.cs
- BoundColumn.cs
- XmlSchemaComplexContentRestriction.cs
- UserInitiatedNavigationPermission.cs
- TrackingServices.cs
- RootAction.cs
- PropertyCondition.cs
- OracleEncoding.cs
- ControlBuilderAttribute.cs
- RequestCacheValidator.cs
- transactioncontext.cs
- MetadataItemSerializer.cs
- Label.cs
- DesignerImageAdapter.cs
- ServiceDescriptionSerializer.cs
- filewebrequest.cs
- XmlStreamStore.cs
- InputProcessorProfiles.cs
- StringBuilder.cs
- ControlIdConverter.cs
- Function.cs
- GuidelineCollection.cs
- ActivityTrace.cs
- DriveNotFoundException.cs
- CorePropertiesFilter.cs
- WindowsRegion.cs
- MaterialGroup.cs
- DisableDpiAwarenessAttribute.cs
- ContextCorrelationInitializer.cs
- StatusBarDesigner.cs
- UIInitializationException.cs
- FilterEventArgs.cs
- wgx_render.cs
- BasicCellRelation.cs
- FacetEnabledSchemaElement.cs
- TextEncodedRawTextWriter.cs
- HtmlInputSubmit.cs
- ParamArrayAttribute.cs
- BufferedGraphics.cs
- DecimalConverter.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- DbProviderFactoriesConfigurationHandler.cs
- DataKey.cs
- WebUtil.cs
- NameSpaceEvent.cs
- ConfigurationStrings.cs
- SemaphoreSecurity.cs
- ElasticEase.cs
- Themes.cs
- ClientCredentialsElement.cs
- ModelFactory.cs
- ExpressionBuilderCollection.cs
- ObjectContextServiceProvider.cs
- ReaderWriterLockWrapper.cs
- OdbcEnvironment.cs
- isolationinterop.cs
- CodeArrayIndexerExpression.cs
- BitStream.cs
- TextParaClient.cs
- StylusTip.cs
- ValidatingReaderNodeData.cs