Code:
/ DotNET / DotNET / 8.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlNamespaceMappingCollection.cs
- TextBoxBaseDesigner.cs
- HttpRawResponse.cs
- EditorPartCollection.cs
- ArrayElementGridEntry.cs
- XmlBaseWriter.cs
- EntityDataSourceStatementEditor.cs
- ManagedWndProcTracker.cs
- PenThread.cs
- DataSourceCacheDurationConverter.cs
- EncodingConverter.cs
- FieldAccessException.cs
- Emitter.cs
- TokenCreationParameter.cs
- DataList.cs
- ToolStripItemTextRenderEventArgs.cs
- DataServiceQuery.cs
- XmlSchemaType.cs
- SqlTypeSystemProvider.cs
- FacetChecker.cs
- HeaderedContentControl.cs
- FlowLayoutSettings.cs
- DispatchWrapper.cs
- DesignTimeVisibleAttribute.cs
- MessageQueueCriteria.cs
- MethodBody.cs
- WebPartEditorOkVerb.cs
- AdCreatedEventArgs.cs
- CodeParameterDeclarationExpression.cs
- WebScriptMetadataInstanceContextProvider.cs
- TextEditorTyping.cs
- Region.cs
- XmlReflectionImporter.cs
- UdpTransportSettingsElement.cs
- AmbientProperties.cs
- Group.cs
- XmlSchemaException.cs
- BaseAsyncResult.cs
- MultitargetingHelpers.cs
- JoinSymbol.cs
- CodeDOMProvider.cs
- SystemResourceHost.cs
- BitSet.cs
- RuntimeEnvironment.cs
- XmlnsPrefixAttribute.cs
- RawTextInputReport.cs
- CellLabel.cs
- WebPartZoneBase.cs
- FastPropertyAccessor.cs
- ExecutionContext.cs
- ListCollectionView.cs
- RangeBase.cs
- EventSource.cs
- TreeSet.cs
- PersonalizationStateQuery.cs
- MatrixConverter.cs
- PointLight.cs
- ConfigXmlSignificantWhitespace.cs
- BrowserDefinition.cs
- ChangeBlockUndoRecord.cs
- AsyncPostBackTrigger.cs
- PtsPage.cs
- QilFunction.cs
- CommandBinding.cs
- PublisherMembershipCondition.cs
- Stack.cs
- ProfileModule.cs
- SqlRetyper.cs
- Serializer.cs
- AssemblyHash.cs
- ScalarType.cs
- DbFunctionCommandTree.cs
- CounterSampleCalculator.cs
- DataRowIndexBuffer.cs
- ServiceHost.cs
- LOSFormatter.cs
- SQLGuid.cs
- XAMLParseException.cs
- AssociationEndMember.cs
- PreservationFileWriter.cs
- TextParaLineResult.cs
- StreamSecurityUpgradeAcceptorBase.cs
- ZipIOLocalFileDataDescriptor.cs
- SiteMapPath.cs
- RelationalExpressions.cs
- ToolStripItemClickedEventArgs.cs
- GroupByExpressionRewriter.cs
- WorkflowApplicationCompletedEventArgs.cs
- PackageDigitalSignatureManager.cs
- Rotation3DAnimationBase.cs
- SID.cs
- SettingsContext.cs
- PropertySet.cs
- DataTableExtensions.cs
- ListViewItemMouseHoverEvent.cs
- EntryIndex.cs
- Pens.cs
- DbSourceParameterCollection.cs
- DeclarativeCatalogPart.cs
- DataBoundControl.cs