Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (13 years ago)
Author:
swagner
Message:

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Core/3.3/Collections/ReadOnlyKeyedItemCollection.cs

    r4419 r4722  
    4444    }
    4545
     46    [StorableConstructor]
     47    protected ReadOnlyKeyedItemCollection(bool deserializing) : base(deserializing) { }
     48    protected ReadOnlyKeyedItemCollection(ReadOnlyKeyedItemCollection<TKey, TItem> original, Cloner cloner) {
     49      cloner.RegisterClonedObject(original, this);
     50      collection = cloner.Clone((IKeyedItemCollection<TKey, TItem>)original.collection);
     51      RegisterEvents();
     52    }
    4653    protected ReadOnlyKeyedItemCollection() : base() { }
    4754    public ReadOnlyKeyedItemCollection(IKeyedItemCollection<TKey, TItem> collection) : base(collection) { }
    48     [StorableConstructor]
    49     protected ReadOnlyKeyedItemCollection(bool deserializing) : base(deserializing) { }
    5055
    5156    public object Clone() {
     
    5358    }
    5459    public virtual IDeepCloneable Clone(Cloner cloner) {
    55       ReadOnlyKeyedItemCollection<TKey, TItem> clone = (ReadOnlyKeyedItemCollection<TKey, TItem>)Activator.CreateInstance(this.GetType());
    56       cloner.RegisterClonedObject(this, clone);
    57       clone.collection = (IKeyedItemCollection<TKey, TItem>)((IKeyedItemCollection<TKey, TItem>)collection).Clone(cloner);
    58       clone.RegisterEvents();
    59       return clone;
     60      return new ReadOnlyKeyedItemCollection<TKey, TItem>(this, cloner);
    6061    }
    6162
Note: See TracChangeset for help on using the changeset viewer.