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
- ExpressionConverter.cs
- BuildDependencySet.cs
- versioninfo.cs
- Transactions.cs
- HMACSHA1.cs
- TemplatePagerField.cs
- TransportElement.cs
- ClientTarget.cs
- ListItemConverter.cs
- WebHttpElement.cs
- UpdateManifestForBrowserApplication.cs
- TrackBar.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- WebBrowser.cs
- ArrayConverter.cs
- HandleCollector.cs
- ExpressionConverter.cs
- DataBindingCollectionEditor.cs
- TheQuery.cs
- XmlStreamNodeWriter.cs
- DataGridViewIntLinkedList.cs
- SamlSubject.cs
- QueryConverter.cs
- Transform.cs
- PartialCachingAttribute.cs
- DataGrid.cs
- ExpressionVisitor.cs
- PictureBox.cs
- GeneralTransform.cs
- Vector.cs
- PlanCompiler.cs
- WindowsTokenRoleProvider.cs
- EntitySetBaseCollection.cs
- TypeLibConverter.cs
- HttpProxyTransportBindingElement.cs
- TextBlockAutomationPeer.cs
- ObjectDataSource.cs
- BinaryMethodMessage.cs
- XmlILCommand.cs
- OdbcConnectionStringbuilder.cs
- CodeIndexerExpression.cs
- RC2CryptoServiceProvider.cs
- ThreadInterruptedException.cs
- TdsParserSessionPool.cs
- XsdDateTime.cs
- ContainerFilterService.cs
- DecimalConstantAttribute.cs
- GAC.cs
- AsyncOperation.cs
- SharedConnectionInfo.cs
- DataServiceConfiguration.cs
- HtmlInputPassword.cs
- HyperLinkField.cs
- SessionViewState.cs
- SoapObjectWriter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- RawKeyboardInputReport.cs
- PlaceHolder.cs
- HtmlTextArea.cs
- LinqDataSource.cs
- ThreadLocal.cs
- _AutoWebProxyScriptWrapper.cs
- PartialCachingAttribute.cs
- ContextQuery.cs
- StackBuilderSink.cs
- FixedSOMImage.cs
- DBPropSet.cs
- StringArrayConverter.cs
- BitmapFrameEncode.cs
- loginstatus.cs
- PathData.cs
- UnaryNode.cs
- MetadataArtifactLoaderResource.cs
- SecureUICommand.cs
- ApplicationSecurityManager.cs
- CalendarDateRangeChangingEventArgs.cs
- ContextMenu.cs
- DocumentOutline.cs
- XamlGridLengthSerializer.cs
- SerializationFieldInfo.cs
- TreeViewImageIndexConverter.cs
- QilStrConcat.cs
- RouteTable.cs
- RegexCompiler.cs
- SwitchLevelAttribute.cs
- ZipIOFileItemStream.cs
- GridViewUpdateEventArgs.cs
- ToolStripItem.cs
- IApplicationTrustManager.cs
- ComplexBindingPropertiesAttribute.cs
- FrameworkElementFactory.cs
- DashStyle.cs
- CodeNamespace.cs
- FontNamesConverter.cs
- PageRequestManager.cs
- UIElementHelper.cs
- CommandHelper.cs
- _UncName.cs
- RegexRunner.cs
- SafeNativeMethods.cs