diff --git a/Pilz.Plugins.Advanced/PluginFeatureController.cs b/Pilz.Plugins.Advanced/PluginFeatureController.cs
index 4650536..d63d08f 100644
--- a/Pilz.Plugins.Advanced/PluginFeatureController.cs
+++ b/Pilz.Plugins.Advanced/PluginFeatureController.cs
@@ -111,7 +111,7 @@ public class PluginFeatureController
/// If not null, the type will only be processed if it's within the given namespace.
public void RegisterAll(Type type, string? @namespace = null)
{
- if (@namespace != null && type.Namespace != null && type.Namespace != @namespace && !type.Namespace.StartsWith(@namespace + "."))
+ if (@namespace != null && type.Namespace != null && type.Namespace != @namespace && !type.Namespace.StartsWith(@namespace + ".") || type.IsAbstract)
return;
if (type.IsAssignableTo(typeof(IPluginFeaturesProvider)))
@@ -171,11 +171,8 @@ public class PluginFeatureController
///
public void Register(PluginFeature module)
{
- if (!features.Contains(module))
- {
- features.Add(module);
+ if (features.Add(module))
OnPluginFeatureReistred?.Invoke(this, module);
- }
}
///