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
- ToolZone.cs
- PageAdapter.cs
- VariableBinder.cs
- LambdaCompiler.Statements.cs
- CrossAppDomainChannel.cs
- ProtocolsConfiguration.cs
- DelimitedListTraceListener.cs
- BinaryObjectReader.cs
- SmiMetaDataProperty.cs
- OrderByQueryOptionExpression.cs
- DataException.cs
- TextServicesDisplayAttribute.cs
- DurationConverter.cs
- WindowsFormsSynchronizationContext.cs
- RequestTimeoutManager.cs
- EventSetterHandlerConverter.cs
- DatagridviewDisplayedBandsData.cs
- SqlRowUpdatingEvent.cs
- RelationshipWrapper.cs
- DispatcherHooks.cs
- XhtmlBasicFormAdapter.cs
- SafeMarshalContext.cs
- BindingUtils.cs
- MetaModel.cs
- ThreadStateException.cs
- ResXResourceSet.cs
- PassportAuthenticationEventArgs.cs
- TypeElement.cs
- RegexGroup.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- SHA1Managed.cs
- XpsStructure.cs
- EventLogPermissionAttribute.cs
- DrawingCollection.cs
- DoubleLink.cs
- ControlValuePropertyAttribute.cs
- RSACryptoServiceProvider.cs
- CodeObjectCreateExpression.cs
- WindowsFormsSectionHandler.cs
- ControlTemplate.cs
- ProtectedConfiguration.cs
- TableHeaderCell.cs
- IPipelineRuntime.cs
- FragmentNavigationEventArgs.cs
- HashJoinQueryOperatorEnumerator.cs
- SemanticValue.cs
- Mouse.cs
- FrameSecurityDescriptor.cs
- VersionPair.cs
- HttpDebugHandler.cs
- OpCellTreeNode.cs
- OrderPreservingPipeliningMergeHelper.cs
- CardSpacePolicyElement.cs
- GridViewEditEventArgs.cs
- IsolatedStorage.cs
- ToolStripHighContrastRenderer.cs
- Pair.cs
- AdornerHitTestResult.cs
- autovalidator.cs
- FlowLayoutPanel.cs
- CaseExpr.cs
- Drawing.cs
- TypeUtil.cs
- FloaterBaseParaClient.cs
- ClassData.cs
- ObjectStateEntryDbDataRecord.cs
- DefaultExpression.cs
- MDIClient.cs
- ManipulationPivot.cs
- Registry.cs
- EntryIndex.cs
- WebBrowserNavigatedEventHandler.cs
- CodeNamespace.cs
- CompiledAction.cs
- SqlConnectionPoolProviderInfo.cs
- ContainerParagraph.cs
- Selection.cs
- DoubleKeyFrameCollection.cs
- SchemaEntity.cs
- XslAst.cs
- UnitySerializationHolder.cs
- CounterSample.cs
- ReferenceConverter.cs
- CompositeTypefaceMetrics.cs
- SystemIPv6InterfaceProperties.cs
- HtmlDocument.cs
- WinEventHandler.cs
- ResXDataNode.cs
- ResourceSet.cs
- EndpointAddress.cs
- ListViewGroupItemCollection.cs
- DashStyles.cs
- Path.cs
- WebPartCatalogCloseVerb.cs
- InsufficientMemoryException.cs
- ViewRendering.cs
- TextServicesCompartmentEventSink.cs
- IisTraceListener.cs
- XmlSchemaCollection.cs
- ProgressBar.cs