diff --git a/Pilz.Plugins.Advanced/IPluginFeatureProvider.cs b/Pilz.Plugins.Advanced/IPluginFeatureProvider.cs index 23ee2a7..f7446d9 100644 --- a/Pilz.Plugins.Advanced/IPluginFeatureProvider.cs +++ b/Pilz.Plugins.Advanced/IPluginFeatureProvider.cs @@ -1,13 +1,21 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; +using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; namespace Pilz.Plugins.Advanced { - public interface IPluginFeatureProvider where T : PluginFeature + public interface IPluginFeatureProvider { - static abstract T Instance { get; } + static abstract PluginFeature Instance { get; } + } + + public interface IPluginFeatureProvider : IPluginFeatureProvider where T : PluginFeature, IPluginFeatureProvider + { + static new abstract T Instance { get; } + static PluginFeature IPluginFeatureProvider.Instance => T.Instance; } } diff --git a/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj b/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj index 5574d9f..d6ab606 100644 --- a/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj +++ b/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj @@ -9,7 +9,7 @@ True - 2.6.0 + 2.6.1 diff --git a/Pilz.Plugins.Advanced/PluginFeatureController.cs b/Pilz.Plugins.Advanced/PluginFeatureController.cs index 686e960..2f1a0a4 100644 --- a/Pilz.Plugins.Advanced/PluginFeatureController.cs +++ b/Pilz.Plugins.Advanced/PluginFeatureController.cs @@ -83,14 +83,14 @@ namespace Pilz.Plugins.Advanced // } //} - public void Register() where T : IPluginFeatureProvider + public void Register() where TProvider : IPluginFeatureProvider { - Register(T.Instance); + Register(TProvider.Instance); } - public void RegisterAll() where T : IPluginFeaturesProvider + public void RegisterAll() where TProvider : IPluginFeaturesProvider { - foreach (var feature in T.GetFeatures()) + foreach (var feature in TProvider.GetFeatures()) Register(feature); }