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
- FactoryMaker.cs
- TablePattern.cs
- SubqueryRules.cs
- ZipPackagePart.cs
- CqlQuery.cs
- AsymmetricKeyExchangeDeformatter.cs
- QilInvokeEarlyBound.cs
- WebPermission.cs
- SafeProcessHandle.cs
- WrapPanel.cs
- OletxVolatileEnlistment.cs
- DataSourceCache.cs
- Trigger.cs
- CompilerState.cs
- AspNetRouteServiceHttpHandler.cs
- X509CertificateStore.cs
- AssemblyUtil.cs
- XmlSerializerNamespaces.cs
- HttpBrowserCapabilitiesBase.cs
- ContentFilePart.cs
- EntityDataSourceSelectingEventArgs.cs
- DataGridTablesFactory.cs
- HandleTable.cs
- GetCardDetailsRequest.cs
- ActivityDesigner.cs
- ConfigXmlAttribute.cs
- TextPointerBase.cs
- _ListenerAsyncResult.cs
- UpdateCommand.cs
- BitmapEffectDrawingContextWalker.cs
- FileStream.cs
- PeerHelpers.cs
- ISFClipboardData.cs
- BufferAllocator.cs
- EpmSourceTree.cs
- DataGridPageChangedEventArgs.cs
- SchemaImporterExtensionsSection.cs
- StylusTouchDevice.cs
- MenuBindingsEditor.cs
- EntitySqlQueryState.cs
- ConversionValidationRule.cs
- Command.cs
- XsdBuildProvider.cs
- ChannelEndpointElementCollection.cs
- UnmanagedMarshal.cs
- RootBrowserWindow.cs
- AuthenticateEventArgs.cs
- QuestionEventArgs.cs
- RegionInfo.cs
- FileDataSourceCache.cs
- WorkflowMessageEventHandler.cs
- SynchronizedDispatch.cs
- TextEmbeddedObject.cs
- MD5CryptoServiceProvider.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- mediaeventshelper.cs
- TextReader.cs
- NavigationPropertySingletonExpression.cs
- _CommandStream.cs
- PeerDuplexChannelListener.cs
- CodeNamespace.cs
- XmlDocumentType.cs
- _emptywebproxy.cs
- EventEntry.cs
- TextPatternIdentifiers.cs
- XhtmlBasicLabelAdapter.cs
- FontFamily.cs
- Panel.cs
- EntitySqlQueryBuilder.cs
- EntryWrittenEventArgs.cs
- SqlParameterCollection.cs
- SerializationSectionGroup.cs
- ClockController.cs
- Helpers.cs
- AsyncStreamReader.cs
- RepeaterCommandEventArgs.cs
- ListChunk.cs
- OrderByBuilder.cs
- PrivateFontCollection.cs
- CodeGeneratorAttribute.cs
- SHA256Cng.cs
- Thickness.cs
- Operator.cs
- SqlDeflator.cs
- DataGridViewButtonCell.cs
- TreeNodeStyle.cs
- SqlVisitor.cs
- XPathNodeHelper.cs
- PeerContact.cs
- DummyDataSource.cs
- WCFBuildProvider.cs
- ProtocolInformationWriter.cs
- Math.cs
- DataObjectAttribute.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- IsolatedStorageException.cs
- SchemaInfo.cs
- ConstraintEnumerator.cs
- ObjectTag.cs
- ApplicationManager.cs