Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / ImmutableCollection.cs / 1305376 / ImmutableCollection.cs
//---------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; // // A collection that can be made immutable by calling the // MakeReadOnly method. Once the collection is made read-only // Add, Remove and Clear methods will throw an exception // failing to add a item to the collection. // internal sealed class ImmutableCollection: Collection , IList , IList { bool isReadOnly = false; public void MakeReadOnly() { this.isReadOnly = true; } public bool IsReadOnly { get { return this.isReadOnly; } } protected override void ClearItems() { if (this.isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); base.ClearItems(); } protected override void InsertItem(int index, T item) { if (this.isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); base.InsertItem(index, item); } protected override void RemoveItem(int index) { if (this.isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); base.RemoveItem(index); } protected override void SetItem(int index, T item) { if (this.isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); base.SetItem(index, item); } bool ICollection .IsReadOnly { get { return this.isReadOnly; } } bool IList.IsReadOnly { get { return this.isReadOnly; } } } } // 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
- DocumentGridContextMenu.cs
- DataGridViewAccessibleObject.cs
- PermissionToken.cs
- BatchServiceHost.cs
- securitycriticaldataClass.cs
- ProtocolElement.cs
- RecognizerInfo.cs
- DataGridView.cs
- Drawing.cs
- ObjectQueryState.cs
- HandoffBehavior.cs
- PaginationProgressEventArgs.cs
- ProviderCommandInfoUtils.cs
- DetailsViewDeletedEventArgs.cs
- DesignerDataStoredProcedure.cs
- DrawingCollection.cs
- ScriptingSectionGroup.cs
- _BasicClient.cs
- VectorKeyFrameCollection.cs
- PtsHost.cs
- HttpCookie.cs
- XmlNodeList.cs
- StorageScalarPropertyMapping.cs
- AmbientValueAttribute.cs
- SectionInformation.cs
- loginstatus.cs
- ProcessModelSection.cs
- FontSourceCollection.cs
- EntitySqlQueryState.cs
- SqlServices.cs
- ImmutableObjectAttribute.cs
- SoapBinding.cs
- SimpleLine.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DbConnectionPoolGroup.cs
- PropertyDescriptor.cs
- AsnEncodedData.cs
- ButtonRenderer.cs
- ImageMap.cs
- FtpRequestCacheValidator.cs
- DiscoveryOperationContextExtension.cs
- GridEntry.cs
- EncryptedPackageFilter.cs
- safex509handles.cs
- GridViewRowEventArgs.cs
- securitycriticaldataClass.cs
- RectAnimationClockResource.cs
- RawStylusInputReport.cs
- RequestNavigateEventArgs.cs
- TCEAdapterGenerator.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- XmlReaderSettings.cs
- SystemPens.cs
- ProxyManager.cs
- WindowsAltTab.cs
- StorageTypeMapping.cs
- FilePrompt.cs
- DiscardableAttribute.cs
- IDispatchConstantAttribute.cs
- ColumnMapTranslator.cs
- GroupBoxDesigner.cs
- XmlDomTextWriter.cs
- Maps.cs
- TransformerInfoCollection.cs
- VisualBrush.cs
- Color.cs
- WpfWebRequestHelper.cs
- M3DUtil.cs
- EventMappingSettingsCollection.cs
- LayoutTable.cs
- ResourceKey.cs
- FormatPage.cs
- DataGridAddNewRow.cs
- XmlElementCollection.cs
- UserControl.cs
- XmlSchemaImport.cs
- TerminatorSinks.cs
- OpenTypeLayoutCache.cs
- GroupJoinQueryOperator.cs
- ListBoxChrome.cs
- UdpDiscoveryEndpointElement.cs
- RelationshipConverter.cs
- OrderByLifter.cs
- XmlSchemaInfo.cs
- StoreAnnotationsMap.cs
- StatusBarDrawItemEvent.cs
- SR.cs
- MouseActionConverter.cs
- UnsafeNativeMethods.cs
- ImpersonationContext.cs
- LoadGrammarCompletedEventArgs.cs
- SystemKeyConverter.cs
- RadialGradientBrush.cs
- RowParagraph.cs
- StrongNameKeyPair.cs
- EventProviderBase.cs
- ComplusEndpointConfigContainer.cs
- unsafenativemethodstextservices.cs
- InvalidCastException.cs
- ProcessInfo.cs