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
- RowsCopiedEventArgs.cs
- EndpointDiscoveryMetadata11.cs
- FilterQuery.cs
- DataBindingCollection.cs
- XmlExtensionFunction.cs
- PopupControlService.cs
- ExpressionVisitor.cs
- ToolStripGripRenderEventArgs.cs
- SctClaimDictionary.cs
- ValidationResult.cs
- Section.cs
- IRCollection.cs
- DataViewManagerListItemTypeDescriptor.cs
- WebBrowserDesigner.cs
- SystemTcpConnection.cs
- Queue.cs
- DataMemberAttribute.cs
- StringDictionaryCodeDomSerializer.cs
- ViewGenResults.cs
- XmlSerializationGeneratedCode.cs
- ThreadExceptionEvent.cs
- HierarchicalDataSourceControl.cs
- ConnectorEditor.cs
- TransactionInformation.cs
- DocumentReference.cs
- EntityViewGenerationConstants.cs
- SoapFault.cs
- EntitySqlQueryCacheEntry.cs
- Line.cs
- Attributes.cs
- ReadWriteSpinLock.cs
- PageThemeCodeDomTreeGenerator.cs
- GridViewPageEventArgs.cs
- MethodBuilder.cs
- CachedFontFace.cs
- RadioButtonList.cs
- DoubleLinkListEnumerator.cs
- ListChangedEventArgs.cs
- Configuration.cs
- FocusManager.cs
- SapiInterop.cs
- UnauthorizedAccessException.cs
- SelectionManager.cs
- DataSourceGeneratorException.cs
- CompositeCollection.cs
- DataKeyArray.cs
- UserPrincipalNameElement.cs
- XmlSchemaNotation.cs
- TraceLevelStore.cs
- WindowPattern.cs
- ItemMap.cs
- WpfKnownMemberInvoker.cs
- StaticExtension.cs
- XPathChildIterator.cs
- XmlAnyElementAttributes.cs
- XsltSettings.cs
- WebPartTracker.cs
- DynamicControl.cs
- GraphicsContext.cs
- InstanceCompleteException.cs
- ClientBuildManagerCallback.cs
- DesignTimeSiteMapProvider.cs
- CodeExpressionCollection.cs
- StreamGeometry.cs
- CommandHelper.cs
- SafeCoTaskMem.cs
- PathData.cs
- XmlQueryRuntime.cs
- ListViewSelectEventArgs.cs
- SharedPersonalizationStateInfo.cs
- DocumentProperties.cs
- Errors.cs
- ConfigXmlCDataSection.cs
- HierarchicalDataTemplate.cs
- PointAnimationBase.cs
- RequestDescription.cs
- ServiceModelConfigurationSectionGroup.cs
- PropertyManager.cs
- HttpResponseHeader.cs
- ArgumentException.cs
- LambdaCompiler.cs
- Trigger.cs
- AlignmentXValidation.cs
- SqlDataSourceSelectingEventArgs.cs
- PackageStore.cs
- IntMinMaxAggregationOperator.cs
- ProxyGenerator.cs
- NamedPipeConnectionPool.cs
- SQLInt16Storage.cs
- IPipelineRuntime.cs
- XmlDataSourceView.cs
- ConfigLoader.cs
- EntityType.cs
- LogicalExpr.cs
- nulltextcontainer.cs
- AttributeUsageAttribute.cs
- TextContainerChangeEventArgs.cs
- ComEventsHelper.cs
- RuntimeResourceSet.cs
- BoundPropertyEntry.cs