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
- TextHidden.cs
- Touch.cs
- Regex.cs
- RuleCache.cs
- KnownIds.cs
- WaitForChangedResult.cs
- DataListCommandEventArgs.cs
- HttpCachePolicyBase.cs
- StdValidatorsAndConverters.cs
- ReachFixedPageSerializerAsync.cs
- DesignerTransaction.cs
- grammarelement.cs
- counter.cs
- SspiWrapper.cs
- MaskedTextProvider.cs
- SignatureSummaryDialog.cs
- CompositeTypefaceMetrics.cs
- TableTextElementCollectionInternal.cs
- DBConnectionString.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- RemoteWebConfigurationHostStream.cs
- XmlnsCache.cs
- CharEnumerator.cs
- TimeoutException.cs
- UTF32Encoding.cs
- Stylus.cs
- ListViewTableRow.cs
- BaseValidator.cs
- BookmarkCallbackWrapper.cs
- ImageField.cs
- RichTextBoxConstants.cs
- PickBranchDesigner.xaml.cs
- OrderedHashRepartitionEnumerator.cs
- EnumerableRowCollection.cs
- AnnotationObservableCollection.cs
- PublisherMembershipCondition.cs
- TextChangedEventArgs.cs
- HideDisabledControlAdapter.cs
- InvalidComObjectException.cs
- sqlnorm.cs
- SqlNodeAnnotations.cs
- HttpServerProtocol.cs
- DataSourceView.cs
- dbenumerator.cs
- isolationinterop.cs
- ObjectStateEntry.cs
- CategoryNameCollection.cs
- ToolBarDesigner.cs
- TreeViewItemAutomationPeer.cs
- CompModSwitches.cs
- Message.cs
- ResourcesGenerator.cs
- GridView.cs
- CopyNodeSetAction.cs
- Axis.cs
- IDataContractSurrogate.cs
- _ProxyChain.cs
- RadialGradientBrush.cs
- CacheChildrenQuery.cs
- CorrelationQueryBehavior.cs
- DataBinding.cs
- RepeatBehaviorConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- recordstatefactory.cs
- StrokeNodeEnumerator.cs
- ToolbarAUtomationPeer.cs
- DefinitionBase.cs
- remotingproxy.cs
- RegistryDataKey.cs
- EncoderNLS.cs
- DbProviderFactory.cs
- GeneralTransform.cs
- TextBlock.cs
- XmlSchemaComplexContent.cs
- Selector.cs
- XmlArrayItemAttribute.cs
- AliasExpr.cs
- ProtocolsSection.cs
- XmlObjectSerializerContext.cs
- ListViewGroupConverter.cs
- PasswordBox.cs
- RegexMatchCollection.cs
- WindowsTokenRoleProvider.cs
- SqlTriggerContext.cs
- BinaryUtilClasses.cs
- ToolBarButtonClickEvent.cs
- RNGCryptoServiceProvider.cs
- AncestorChangedEventArgs.cs
- DrawingCollection.cs
- ReachBasicContext.cs
- EntityDataSourceSelectedEventArgs.cs
- TypeSystem.cs
- BaseCAMarshaler.cs
- MatrixTransform3D.cs
- Object.cs
- ListControlBuilder.cs
- DataBindEngine.cs
- UnsafeNativeMethods.cs
- DisposableCollectionWrapper.cs
- SQLBytes.cs