diff --git a/neo/NeoSystem.cs b/neo/NeoSystem.cs index 867d4e4201..9265f47645 100644 --- a/neo/NeoSystem.cs +++ b/neo/NeoSystem.cs @@ -42,6 +42,8 @@ public NeoSystem(Store store) public void Dispose() { + foreach (var p in Plugin.Plugins) + p.Dispose(); RpcServer?.Dispose(); EnsureStoped(LocalNode); // Dispose will call ActorSystem.Terminate() diff --git a/neo/Plugins/Plugin.cs b/neo/Plugins/Plugin.cs index aa04b0778d..14345d9de1 100644 --- a/neo/Plugins/Plugin.cs +++ b/neo/Plugins/Plugin.cs @@ -8,7 +8,7 @@ namespace Neo.Plugins { - public abstract class Plugin + public abstract class Plugin : IDisposable { public static readonly List Plugins = new List(); private static readonly List Loggers = new List(); @@ -169,5 +169,9 @@ private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEven return null; } } + + public virtual void Dispose() + { + } } }