Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / ReadOnlyDictionary.cs / 1305376 / ReadOnlyDictionary.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime { using System.Collections; using System.Collections.Generic; [Serializable] class ReadOnlyDictionary: IDictionary { IDictionary dictionary; public ReadOnlyDictionary(IDictionary dictionary) : this(dictionary, true) { } public ReadOnlyDictionary(IDictionary dictionary, bool makeCopy) { if (makeCopy) { this.dictionary = new Dictionary (dictionary); } else { this.dictionary = dictionary; } } public int Count { get { return this.dictionary.Count; } } public bool IsReadOnly { get { return true; } } public ICollection Keys { get { return this.dictionary.Keys; } } public ICollection Values { get { return this.dictionary.Values; } } public TValue this[TKey key] { get { return this.dictionary[key]; } set { throw Fx.Exception.AsError(CreateReadOnlyException()); } } public static IDictionary Create(IDictionary dictionary) { if (dictionary.IsReadOnly) { return dictionary; } else { return new ReadOnlyDictionary (dictionary); } } Exception CreateReadOnlyException() { return new InvalidOperationException(SRCore.DictionaryIsReadOnly); } public void Add(TKey key, TValue value) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Add(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Clear() { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Contains(KeyValuePair item) { return this.dictionary.Contains(item); } public bool ContainsKey(TKey key) { return this.dictionary.ContainsKey(key); } public void CopyTo(KeyValuePair [] array, int arrayIndex) { this.dictionary.CopyTo(array, arrayIndex); } public IEnumerator > GetEnumerator() { return this.dictionary.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } public bool Remove(TKey key) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Remove(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool TryGetValue(TKey key, out TValue value) { return this.dictionary.TryGetValue(key, out value); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime { using System.Collections; using System.Collections.Generic; [Serializable] class ReadOnlyDictionary : IDictionary { IDictionary dictionary; public ReadOnlyDictionary(IDictionary dictionary) : this(dictionary, true) { } public ReadOnlyDictionary(IDictionary dictionary, bool makeCopy) { if (makeCopy) { this.dictionary = new Dictionary (dictionary); } else { this.dictionary = dictionary; } } public int Count { get { return this.dictionary.Count; } } public bool IsReadOnly { get { return true; } } public ICollection Keys { get { return this.dictionary.Keys; } } public ICollection Values { get { return this.dictionary.Values; } } public TValue this[TKey key] { get { return this.dictionary[key]; } set { throw Fx.Exception.AsError(CreateReadOnlyException()); } } public static IDictionary Create(IDictionary dictionary) { if (dictionary.IsReadOnly) { return dictionary; } else { return new ReadOnlyDictionary (dictionary); } } Exception CreateReadOnlyException() { return new InvalidOperationException(SRCore.DictionaryIsReadOnly); } public void Add(TKey key, TValue value) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Add(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public void Clear() { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Contains(KeyValuePair item) { return this.dictionary.Contains(item); } public bool ContainsKey(TKey key) { return this.dictionary.ContainsKey(key); } public void CopyTo(KeyValuePair [] array, int arrayIndex) { this.dictionary.CopyTo(array, arrayIndex); } public IEnumerator > GetEnumerator() { return this.dictionary.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } public bool Remove(TKey key) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool Remove(KeyValuePair item) { throw Fx.Exception.AsError(CreateReadOnlyException()); } public bool TryGetValue(TKey key, out TValue value) { return this.dictionary.TryGetValue(key, out value); } } } // 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
- PartitionerStatic.cs
- cookiecollection.cs
- WebCategoryAttribute.cs
- ClientCredentialsElement.cs
- DbDataRecord.cs
- Int32Collection.cs
- WindowsAuthenticationEventArgs.cs
- SetterTriggerConditionValueConverter.cs
- PositiveTimeSpanValidator.cs
- RegexGroup.cs
- HtmlTableRow.cs
- TouchEventArgs.cs
- OpCodes.cs
- DataQuery.cs
- QueueProcessor.cs
- mediaeventshelper.cs
- InputBindingCollection.cs
- MethodRental.cs
- Int32.cs
- X509ChainPolicy.cs
- SizeValueSerializer.cs
- XmlElementAttribute.cs
- DeclaredTypeValidatorAttribute.cs
- DispatcherSynchronizationContext.cs
- SerialErrors.cs
- SecurityElement.cs
- ObjectDataSourceFilteringEventArgs.cs
- UndoEngine.cs
- SettingsAttributes.cs
- Simplifier.cs
- DrawingBrush.cs
- MetabaseSettings.cs
- PointLight.cs
- ObjRef.cs
- WebReferencesBuildProvider.cs
- FixedSOMFixedBlock.cs
- TypefaceMap.cs
- TreeNodeStyle.cs
- Sql8ExpressionRewriter.cs
- SessionEndingCancelEventArgs.cs
- AttributeCollection.cs
- MsmqBindingMonitor.cs
- RequestStatusBarUpdateEventArgs.cs
- ComEventsSink.cs
- Material.cs
- UnSafeCharBuffer.cs
- MimeParameters.cs
- TextBoxRenderer.cs
- SerialErrors.cs
- _SSPIWrapper.cs
- XmlFormatMapping.cs
- SchemaTypeEmitter.cs
- DatePickerDateValidationErrorEventArgs.cs
- HttpResponseInternalWrapper.cs
- loginstatus.cs
- TypeDescriptionProvider.cs
- DataBindingCollectionEditor.cs
- WmlPageAdapter.cs
- MailAddressCollection.cs
- SqlDataReader.cs
- RepeaterCommandEventArgs.cs
- NativeRightsManagementAPIsStructures.cs
- DateTimeValueSerializer.cs
- HttpResponse.cs
- QueryableFilterRepeater.cs
- PageClientProxyGenerator.cs
- Propagator.JoinPropagator.cs
- AddInControllerImpl.cs
- Selection.cs
- StreamUpdate.cs
- ListenerUnsafeNativeMethods.cs
- FlowPosition.cs
- MetaData.cs
- TimeSpanMinutesConverter.cs
- FaultImportOptions.cs
- RouteCollection.cs
- XmlUnspecifiedAttribute.cs
- CodeAssignStatement.cs
- BrowserCapabilitiesCompiler.cs
- CacheChildrenQuery.cs
- TimerElapsedEvenArgs.cs
- ActivityScheduledQuery.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- HwndHostAutomationPeer.cs
- AsyncStreamReader.cs
- DetailsViewRowCollection.cs
- SoapAttributeOverrides.cs
- DispatcherHookEventArgs.cs
- MenuItemCollection.cs
- Transform.cs
- ZipIOExtraFieldElement.cs
- ViewCellSlot.cs
- NamedPermissionSet.cs
- DateBoldEvent.cs
- ApplicationException.cs
- DataGridViewButtonCell.cs
- DocumentationServerProtocol.cs
- InstancePersistenceCommandException.cs
- MenuScrollingVisibilityConverter.cs
- HttpListenerException.cs