@@ -18,12 +18,6 @@ namespace Xtensive.Orm.Model
1818 public class NodeCollection < TNode > : CollectionBaseSlim < TNode >
1919 where TNode : Node
2020 {
21- [ NonSerialized , DebuggerBrowsable ( DebuggerBrowsableState . Never ) ]
22- private EventHandler < ChangeNotifierEventArgs > itemChangedHandler ;
23-
24- [ NonSerialized , DebuggerBrowsable ( DebuggerBrowsableState . Never ) ]
25- private EventHandler < ChangeNotifierEventArgs > itemChangingHandler ;
26-
2721 protected IDictionary < string , TNode > NameIndex ;
2822
2923 /// <summary>
@@ -63,7 +57,6 @@ public override void Add(TNode item)
6357 try {
6458 base . Add ( item ) ;
6559 NameIndex . Add ( item . Name , item ) ;
66- TrySubscribe ( item ) ;
6760 }
6861 catch ( ArgumentException e ) {
6962 throw new InvalidOperationException (
@@ -88,7 +81,6 @@ public override void AddRange(IEnumerable<TNode> nodes)
8881 public override bool Remove ( TNode item )
8982 {
9083 if ( base . Remove ( item ) ) {
91- TryUnsubscribe ( item ) ;
9284 NameIndex . Remove ( item . Name ) ;
9385 return true ;
9486 }
@@ -99,9 +91,6 @@ public override bool Remove(TNode item)
9991 public override void Clear ( )
10092 {
10193 EnsureNotLocked ( ) ;
102- foreach ( var item in this ) {
103- TryUnsubscribe ( item ) ;
104- }
10594 base . Clear ( ) ;
10695 NameIndex . Clear ( ) ;
10796 }
@@ -163,43 +152,6 @@ protected virtual string GetExceptionMessage(string key)
163152 return string . Format ( Strings . ExItemWithKeyXWasNotFound , key ) ;
164153 }
165154
166- /// <summary>
167- /// Tries to subscribe the collection on
168- /// change notifications from the specified item.
169- /// </summary>
170- /// <param name="item">The item to try.</param>
171- protected void TrySubscribe ( TNode item )
172- {
173- if ( item is IChangeNotifier notifier ) {
174- notifier . Changing += itemChangingHandler ;
175- notifier . Changed += itemChangedHandler ;
176- }
177- }
178-
179- /// <summary>
180- /// Tries to unsubscribe the collection from
181- /// change notifications from the specified item.
182- /// </summary>
183- /// <param name="item">The item to try.</param>
184- protected void TryUnsubscribe ( TNode item )
185- {
186- if ( item is IChangeNotifier notifier ) {
187- notifier . Changing -= itemChangingHandler ;
188- notifier . Changed -= itemChangedHandler ;
189- }
190- }
191-
192- protected virtual void OnItemChanging ( object sender , ChangeNotifierEventArgs e )
193- {
194- NameIndex . Remove ( ( ( TNode ) sender ) . Name ) ;
195- }
196-
197- protected virtual void OnItemChanged ( object sender , ChangeNotifierEventArgs e )
198- {
199- var tNode = ( TNode ) sender ;
200- NameIndex . Add ( tNode . Name , tNode ) ;
201- }
202-
203155 /// <inheritdoc/>
204156 public override void Lock ( bool recursive )
205157 {
@@ -230,8 +182,6 @@ protected NodeCollection(Node owner, string name, Dictionary<string, TNode> name
230182 NameIndex = nameIndex ;
231183 Owner = owner ;
232184 Name = name ;
233- itemChangingHandler = OnItemChanging ;
234- itemChangedHandler = OnItemChanged ;
235185 }
236186
237187 // Type initializer
0 commit comments