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
- InputProviderSite.cs
- XamlTemplateSerializer.cs
- Win32MouseDevice.cs
- TypeSystemHelpers.cs
- X509ServiceCertificateAuthenticationElement.cs
- UnsafeNativeMethods.cs
- EntityDataSourceContextDisposingEventArgs.cs
- HttpConfigurationSystem.cs
- AppSettings.cs
- WebBrowserBase.cs
- ScopeElementCollection.cs
- PropertyEntry.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- MetadataCacheItem.cs
- CodeArrayIndexerExpression.cs
- ObjectDataSourceStatusEventArgs.cs
- GACIdentityPermission.cs
- Item.cs
- AnnotationHighlightLayer.cs
- WriteableBitmap.cs
- SerializerWriterEventHandlers.cs
- WebServicesSection.cs
- GetFileNameResult.cs
- URLMembershipCondition.cs
- BuildProviderCollection.cs
- SessionState.cs
- XamlInt32CollectionSerializer.cs
- Typeface.cs
- ResourcePool.cs
- AnimationLayer.cs
- Inflater.cs
- DocumentPage.cs
- DBSchemaTable.cs
- HandlerFactoryWrapper.cs
- CellRelation.cs
- CombinedGeometry.cs
- DoubleAnimation.cs
- EditorZone.cs
- WSDualHttpSecurity.cs
- basevalidator.cs
- InputEventArgs.cs
- TabItemWrapperAutomationPeer.cs
- DrawingVisualDrawingContext.cs
- DocumentSequence.cs
- OuterGlowBitmapEffect.cs
- AutomationPatternInfo.cs
- WmpBitmapDecoder.cs
- ColumnResizeAdorner.cs
- SqlProfileProvider.cs
- InstanceHandleReference.cs
- DocumentReferenceCollection.cs
- XPathEmptyIterator.cs
- LayoutDump.cs
- MsdtcClusterUtils.cs
- TransformValueSerializer.cs
- VisualProxy.cs
- WebBrowser.cs
- RenameRuleObjectDialog.Designer.cs
- bidPrivateBase.cs
- EntitySqlQueryState.cs
- WsdlImporterElementCollection.cs
- DoubleStorage.cs
- ProcessHostMapPath.cs
- HttpApplicationFactory.cs
- CharacterMetricsDictionary.cs
- ComplusEndpointConfigContainer.cs
- GenerateTemporaryAssemblyTask.cs
- KeyPullup.cs
- NavigationProgressEventArgs.cs
- RadioButtonStandardAdapter.cs
- DodSequenceMerge.cs
- Int16Converter.cs
- RawMouseInputReport.cs
- SiteIdentityPermission.cs
- ObjectStateEntry.cs
- ExtentKey.cs
- SafeProcessHandle.cs
- SqlColumnizer.cs
- MetadataCacheItem.cs
- Command.cs
- LongAverageAggregationOperator.cs
- ManagementObject.cs
- WSSecureConversationDec2005.cs
- FontNameEditor.cs
- AddInPipelineAttributes.cs
- GlobalizationSection.cs
- ChooseAction.cs
- RangeContentEnumerator.cs
- ListViewItemSelectionChangedEvent.cs
- DataGridViewBindingCompleteEventArgs.cs
- MainMenu.cs
- CodeAccessSecurityEngine.cs
- TypeBrowser.xaml.cs
- GrammarBuilderDictation.cs
- OdbcConnectionFactory.cs
- SessionEndingEventArgs.cs
- MulticastNotSupportedException.cs
- SimpleLine.cs
- Operand.cs
- XhtmlConformanceSection.cs