| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //----------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //----------------------------------------------------------------
- namespace System.Collections.ObjectModel
- {
- using System;
- using System.Collections.Generic;
- using System.ServiceModel;
- class FreezableCollection<T> : Collection<T>, ICollection<T>
- {
- bool frozen;
- public FreezableCollection()
- : base()
- {
- }
- public FreezableCollection(IList<T> list)
- : base(list)
- {
- }
- public bool IsFrozen
- {
- get
- {
- return this.frozen;
- }
- }
- bool ICollection<T>.IsReadOnly
- {
- get
- {
- return this.frozen;
- }
- }
- public void Freeze()
- {
- this.frozen = true;
- }
- protected override void ClearItems()
- {
- ThrowIfFrozen();
- base.ClearItems();
- }
- protected override void InsertItem(int index, T item)
- {
- ThrowIfFrozen();
- base.InsertItem(index, item);
- }
- protected override void RemoveItem(int index)
- {
- ThrowIfFrozen();
- base.RemoveItem(index);
- }
- protected override void SetItem(int index, T item)
- {
- ThrowIfFrozen();
- base.SetItem(index, item);
- }
- void ThrowIfFrozen()
- {
- if (this.frozen)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.ObjectIsReadOnly));
- }
- }
- }
- }
|