Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------- // 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
- TransformedBitmap.cs
- PrimitiveCodeDomSerializer.cs
- DrawItemEvent.cs
- PartialCachingAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- EDesignUtil.cs
- AnnotationResourceChangedEventArgs.cs
- FloatSumAggregationOperator.cs
- ClrProviderManifest.cs
- QueryableDataSource.cs
- TableLayoutPanel.cs
- ObjectParameterCollection.cs
- SurrogateSelector.cs
- OptimalBreakSession.cs
- HtmlInputText.cs
- AspCompat.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- ActivityAction.cs
- AstNode.cs
- ActivityXRefPropertyEditor.cs
- EdmSchemaAttribute.cs
- XmlArrayAttribute.cs
- CompositeFontParser.cs
- BigInt.cs
- WmlImageAdapter.cs
- PageBreakRecord.cs
- _LocalDataStoreMgr.cs
- DefaultPropertiesToSend.cs
- RealProxy.cs
- CellLabel.cs
- WpfPayload.cs
- XNodeNavigator.cs
- TextParagraphCache.cs
- DataGridSortingEventArgs.cs
- InputBuffer.cs
- DynamicControlParameter.cs
- XmlBoundElement.cs
- NativeMethods.cs
- NullableIntSumAggregationOperator.cs
- HtmlForm.cs
- Int16KeyFrameCollection.cs
- DataGridViewColumnCollection.cs
- Vector3dCollection.cs
- RoleManagerEventArgs.cs
- UnaryQueryOperator.cs
- GotoExpression.cs
- MouseEventArgs.cs
- COM2IDispatchConverter.cs
- ProxyGenerationError.cs
- oledbmetadatacolumnnames.cs
- Signature.cs
- FileDialogCustomPlacesCollection.cs
- ImageField.cs
- DocumentSchemaValidator.cs
- WebPartVerbCollection.cs
- ComponentResourceKeyConverter.cs
- DbDataSourceEnumerator.cs
- DiscriminatorMap.cs
- wmiprovider.cs
- StylusButton.cs
- TypedTableBase.cs
- CodeComment.cs
- IntPtr.cs
- ParentUndoUnit.cs
- _SslSessionsCache.cs
- DataGridViewCellFormattingEventArgs.cs
- MemberDescriptor.cs
- TitleStyle.cs
- _ConnectStream.cs
- ReachFixedDocumentSerializerAsync.cs
- OleCmdHelper.cs
- ExecutedRoutedEventArgs.cs
- AbandonedMutexException.cs
- GenericTextProperties.cs
- UnsafeNativeMethods.cs
- QueryContinueDragEventArgs.cs
- NumericPagerField.cs
- DataTablePropertyDescriptor.cs
- PrintDialog.cs
- DerivedKeySecurityTokenStub.cs
- SqlInfoMessageEvent.cs
- FileDialog_Vista_Interop.cs
- PlainXmlWriter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- StorageInfo.cs
- SmiConnection.cs
- XPathExpr.cs
- DirectoryRootQuery.cs
- DataGridCellsPresenter.cs
- SurrogateChar.cs
- NamespaceCollection.cs
- ProfileParameter.cs
- GlobalizationSection.cs
- NetworkInterface.cs
- WmlMobileTextWriter.cs
- StandardOleMarshalObject.cs
- InProcStateClientManager.cs
- webbrowsersite.cs
- KnownTypeDataContractResolver.cs
- SimpleFieldTemplateUserControl.cs