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
- FillBehavior.cs
- ClipboardProcessor.cs
- ClientScriptManager.cs
- EntityCommand.cs
- PeerNearMe.cs
- GeneralTransformGroup.cs
- DetailsViewPageEventArgs.cs
- ResourceFallbackManager.cs
- HtmlTextBoxAdapter.cs
- RijndaelManagedTransform.cs
- Soap.cs
- LicFileLicenseProvider.cs
- Int16KeyFrameCollection.cs
- Listbox.cs
- DataSysAttribute.cs
- ValidationRuleCollection.cs
- PropertyInfoSet.cs
- ParserExtension.cs
- BmpBitmapDecoder.cs
- _SSPIWrapper.cs
- ExpressionPrefixAttribute.cs
- PeerResolver.cs
- ToolStripManager.cs
- ApplicationInfo.cs
- FtpCachePolicyElement.cs
- XmlLangPropertyAttribute.cs
- DateTimeConverter2.cs
- ChannelManager.cs
- UniqueIdentifierService.cs
- OdbcFactory.cs
- ValidatorUtils.cs
- securitycriticaldata.cs
- GroupBoxRenderer.cs
- StylusTip.cs
- AccessedThroughPropertyAttribute.cs
- FaultHandlingFilter.cs
- ScriptReference.cs
- WebRequest.cs
- DetailsViewPageEventArgs.cs
- DSACryptoServiceProvider.cs
- CacheOutputQuery.cs
- OutputCache.cs
- StringHandle.cs
- NameValueConfigurationCollection.cs
- LinkTarget.cs
- SoapMessage.cs
- GlyphingCache.cs
- TemplateColumn.cs
- DesignerSerializerAttribute.cs
- XamlHostingSectionGroup.cs
- XmlDigitalSignatureProcessor.cs
- PasswordTextNavigator.cs
- ParameterReplacerVisitor.cs
- BoundField.cs
- JoinSymbol.cs
- SiteMapSection.cs
- SR.cs
- AvTraceDetails.cs
- CallbackWrapper.cs
- PreviousTrackingServiceAttribute.cs
- Inline.cs
- StructuredProperty.cs
- GeometryDrawing.cs
- X509RecipientCertificateServiceElement.cs
- MULTI_QI.cs
- WindowsEditBoxRange.cs
- Literal.cs
- RsaSecurityTokenAuthenticator.cs
- DurationConverter.cs
- UnknownBitmapDecoder.cs
- TextProviderWrapper.cs
- CollectionViewProxy.cs
- RuleInfoComparer.cs
- WebRequestModuleElement.cs
- ButtonField.cs
- Itemizer.cs
- TransportChannelListener.cs
- QuadraticBezierSegment.cs
- EntityViewGenerationConstants.cs
- SchemaDeclBase.cs
- EventLogTraceListener.cs
- NumberSubstitution.cs
- FacetChecker.cs
- TextClipboardData.cs
- FormViewUpdatedEventArgs.cs
- GeneratedContractType.cs
- SiteMap.cs
- OptimisticConcurrencyException.cs
- GridViewSelectEventArgs.cs
- TextRangeEditTables.cs
- MenuItemBindingCollection.cs
- XmlSchemaChoice.cs
- DbConnectionPoolGroupProviderInfo.cs
- SafeProcessHandle.cs
- Speller.cs
- TreeNode.cs
- DataGridViewColumnDesigner.cs
- ModuleConfigurationInfo.cs
- PerformanceCounterPermission.cs
- HtmlInputHidden.cs