diff --git a/Orm/Xtensive.Orm/Collections/ChangeNotifierEventArgs.cs b/Orm/Xtensive.Orm/Collections/ChangeNotifierEventArgs.cs
deleted file mode 100644
index 43a2f109d..000000000
--- a/Orm/Xtensive.Orm/Collections/ChangeNotifierEventArgs.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2007-2022 Xtensive LLC.
-// This code is distributed under MIT license terms.
-// See the License.txt file in the project root for more information.
-// Created by: Dmitri Maximov
-// Created: 2007.10.15
-
-using System;
-
-
-namespace Xtensive.Collections
-{
- ///
- /// Represents a set of information describing change.
- ///
- [Serializable]
- public readonly struct ChangeNotifierEventArgs
- {
- ///
- /// Gets the object representing some additional change information.
- ///
- /// The info.
- public object ChangeInfo { get; }
-
- ///
- /// Initializes a new instance of this type.
- ///
- /// The info.
- public ChangeNotifierEventArgs(object changeInfo)
- {
- ChangeInfo = changeInfo;
- }
- }
-}
diff --git a/Orm/Xtensive.Orm/Collections/Interfaces/IChangeNotifier.cs b/Orm/Xtensive.Orm/Collections/Interfaces/IChangeNotifier.cs
deleted file mode 100644
index 01bd96f68..000000000
--- a/Orm/Xtensive.Orm/Collections/Interfaces/IChangeNotifier.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2003-2010 Xtensive LLC.
-// All rights reserved.
-// For conditions of distribution and use, see license.
-// Created by: Dmitri Maximov
-// Created: 2007.10.15
-
-using System;
-using Xtensive.Collections;
-
-namespace Xtensive.Collections
-{
- ///
- /// An object exposing change related events contract.
- ///
- public interface IChangeNotifier
- {
- ///
- /// Occurs when this instance is about to be changed.
- ///
- event EventHandler Changing;
-
- ///
- /// Occurs when this instance is changed.
- ///
- event EventHandler Changed;
- }
-}
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm/Orm/Model/NodeCollection.cs b/Orm/Xtensive.Orm/Orm/Model/NodeCollection.cs
index cfcfa73c1..bac4a9452 100644
--- a/Orm/Xtensive.Orm/Orm/Model/NodeCollection.cs
+++ b/Orm/Xtensive.Orm/Orm/Model/NodeCollection.cs
@@ -18,12 +18,6 @@ namespace Xtensive.Orm.Model
public class NodeCollection : CollectionBaseSlim
where TNode: Node
{
- [NonSerialized, DebuggerBrowsable(DebuggerBrowsableState.Never)]
- private EventHandler itemChangedHandler;
-
- [NonSerialized, DebuggerBrowsable(DebuggerBrowsableState.Never)]
- private EventHandler itemChangingHandler;
-
protected IDictionary NameIndex;
///
@@ -63,7 +57,6 @@ public override void Add(TNode item)
try {
base.Add(item);
NameIndex.Add(item.Name, item);
- TrySubscribe(item);
}
catch (ArgumentException e){
throw new InvalidOperationException(
@@ -88,7 +81,6 @@ public override void AddRange(IEnumerable nodes)
public override bool Remove(TNode item)
{
if (base.Remove(item)) {
- TryUnsubscribe(item);
NameIndex.Remove(item.Name);
return true;
}
@@ -99,9 +91,6 @@ public override bool Remove(TNode item)
public override void Clear()
{
EnsureNotLocked();
- foreach(var item in this) {
- TryUnsubscribe(item);
- }
base.Clear();
NameIndex.Clear();
}
@@ -163,43 +152,6 @@ protected virtual string GetExceptionMessage(string key)
return string.Format(Strings.ExItemWithKeyXWasNotFound, key);
}
- ///
- /// Tries to subscribe the collection on
- /// change notifications from the specified item.
- ///
- /// The item to try.
- protected void TrySubscribe(TNode item)
- {
- if (item is IChangeNotifier notifier) {
- notifier.Changing += itemChangingHandler;
- notifier.Changed += itemChangedHandler;
- }
- }
-
- ///
- /// Tries to unsubscribe the collection from
- /// change notifications from the specified item.
- ///
- /// The item to try.
- protected void TryUnsubscribe(TNode item)
- {
- if (item is IChangeNotifier notifier) {
- notifier.Changing -= itemChangingHandler;
- notifier.Changed -= itemChangedHandler;
- }
- }
-
- protected virtual void OnItemChanging(object sender, ChangeNotifierEventArgs e)
- {
- NameIndex.Remove(((TNode) sender).Name);
- }
-
- protected virtual void OnItemChanged(object sender, ChangeNotifierEventArgs e)
- {
- var tNode = (TNode)sender;
- NameIndex.Add(tNode.Name, tNode);
- }
-
///
public override void Lock(bool recursive)
{
@@ -230,8 +182,6 @@ protected NodeCollection(Node owner, string name, Dictionary name
NameIndex = nameIndex;
Owner = owner;
Name = name;
- itemChangingHandler = OnItemChanging;
- itemChangedHandler = OnItemChanged;
}
// Type initializer