diff --git a/Pilz.Plugins/PluginLoadInfo.cs b/Pilz.Plugins/PluginLoadInfo.cs index 19677a8..5e60e42 100644 --- a/Pilz.Plugins/PluginLoadInfo.cs +++ b/Pilz.Plugins/PluginLoadInfo.cs @@ -2,10 +2,10 @@ namespace Pilz.Plugins; -public class PluginLoadInfo where TPluginInterface : class where TPluginRuntimeInfo : PluginRuntimeInfo +public class PluginLoadInfo where TPluginInterface : class where TPluginRuntimeInfo : PluginRuntimeInfo { internal List PluginsInternal { get; } = []; - public Assembly Assembly { get; internal set; } + public Assembly? Assembly { get; internal set; } public PluginLoadStatus Status { get; internal set; } public IEnumerable Plugins => PluginsInternal.AsReadOnly(); } diff --git a/Pilz.Plugins/PluginManager.cs b/Pilz.Plugins/PluginManager.cs index 30a94f8..19181f9 100644 --- a/Pilz.Plugins/PluginManager.cs +++ b/Pilz.Plugins/PluginManager.cs @@ -1,6 +1,6 @@ namespace Pilz.Plugins; -public class PluginManager : PluginManager +public class PluginManager : PluginManager { public static PluginManager Instance { get; private set; } = new(); } diff --git a/Pilz.Plugins/PluginManagerT.cs b/Pilz.Plugins/PluginManager{T,T}.cs similarity index 98% rename from Pilz.Plugins/PluginManagerT.cs rename to Pilz.Plugins/PluginManager{T,T}.cs index f9cc638..e74b139 100644 --- a/Pilz.Plugins/PluginManagerT.cs +++ b/Pilz.Plugins/PluginManager{T,T}.cs @@ -2,7 +2,7 @@ namespace Pilz.Plugins; -public class PluginManager where TPluginInterface : class where TPluginRuntimeInfo : PluginRuntimeInfo +public class PluginManager where TPluginInterface : class where TPluginRuntimeInfo : PluginRuntimeInfo { protected readonly List loadedPlugins = []; @@ -40,7 +40,7 @@ public class PluginManager where TPluginIn /// /// Loads plugins from the given assemblies. /// - /// + /// /// /// public virtual IEnumerable> LoadPlugins(Assembly[] assemblies, params object?[]? parameters) @@ -65,7 +65,8 @@ public class PluginManager where TPluginIn /// /// Loads plugins from already loaded assemblies for the current . /// - /// Do also load plugins from all yet not loaded assemblies by listening the event . + /// Do also load plugins from all yet not loaded assemblies by listening the event + /// >. /// public virtual IEnumerable> LoadOwnPlugins(bool listenAssemblyLoadContext, params object?[]? parameters) { diff --git a/Pilz.Plugins/PluginManager{T}.cs b/Pilz.Plugins/PluginManager{T}.cs new file mode 100644 index 0000000..2c8100c --- /dev/null +++ b/Pilz.Plugins/PluginManager{T}.cs @@ -0,0 +1,3 @@ +namespace Pilz.Plugins; + +public class PluginManager : PluginManager where TPluginInterface : class; \ No newline at end of file diff --git a/Pilz.Plugins/PluginRuntimeInfo.cs b/Pilz.Plugins/PluginRuntimeInfo.cs index 7b57581..622fcb3 100644 --- a/Pilz.Plugins/PluginRuntimeInfo.cs +++ b/Pilz.Plugins/PluginRuntimeInfo.cs @@ -1,5 +1,11 @@ -namespace Pilz.Plugins; +using System.Reflection; -public class PluginRuntimeInfo : PluginRuntimeInfo +namespace Pilz.Plugins; + +public class PluginRuntimeInfo { + public object? Plugin { get; internal set; } + public PluginStatus Status { get; internal set; } + public Assembly? Assembly { get; internal set; } + public Exception? Exception { get; internal set; } } diff --git a/Pilz.Plugins/PluginRuntimeInfoT.cs b/Pilz.Plugins/PluginRuntimeInfoT.cs deleted file mode 100644 index bf89e49..0000000 --- a/Pilz.Plugins/PluginRuntimeInfoT.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Reflection; - -namespace Pilz.Plugins; - -public class PluginRuntimeInfo where T : class -{ - public T? Plugin { get; internal set; } - public PluginStatus Status { get; internal set; } - public Assembly? Assembly { get; internal set; } - public Exception? Exception { get; internal set; } -} diff --git a/Pilz.Plugins/PluginRuntimeInfo{T}.cs b/Pilz.Plugins/PluginRuntimeInfo{T}.cs new file mode 100644 index 0000000..66a76fb --- /dev/null +++ b/Pilz.Plugins/PluginRuntimeInfo{T}.cs @@ -0,0 +1,10 @@ +namespace Pilz.Plugins; + +public class PluginRuntimeInfo : PluginRuntimeInfo where T : class +{ + public new T? Plugin + { + get => base.Plugin as T; + set => base.Plugin = value; + } +}