diff options
| author | Bond-009 <bond.009@outlook.com> | 2020-11-15 13:29:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-15 13:29:04 +0100 |
| commit | 331c7f84817ae2c6897cc60d16a5d66b27f3f187 (patch) | |
| tree | 16b53f1bb904fdbbccf758d6e46b970899bb7252 /MediaBrowser.Common/Plugins | |
| parent | ce4787c7eb2d19de263d7db0d05479f176544034 (diff) | |
| parent | 51996cd34dface6c9d6a6fb969bd412ac8cb56f7 (diff) | |
Merge pull request #4253 from BaronGreenback/fordiscussion
DI in plugins
Diffstat (limited to 'MediaBrowser.Common/Plugins')
| -rw-r--r-- | MediaBrowser.Common/Plugins/BasePlugin.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Common/Plugins/IPlugin.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs | 19 |
3 files changed, 26 insertions, 22 deletions
diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs index 8545fd5dcf..e21d8c7d1b 100644 --- a/MediaBrowser.Common/Plugins/BasePlugin.cs +++ b/MediaBrowser.Common/Plugins/BasePlugin.cs @@ -84,16 +84,6 @@ namespace MediaBrowser.Common.Plugins } /// <inheritdoc /> - public virtual void RegisterServices(IServiceCollection serviceCollection) - { - } - - /// <inheritdoc /> - public virtual void UnregisterServices(IServiceCollection serviceCollection) - { - } - - /// <inheritdoc /> public void SetAttributes(string assemblyFilePath, string dataFolderPath, Version assemblyVersion) { AssemblyFilePath = assemblyFilePath; @@ -186,6 +176,11 @@ namespace MediaBrowser.Common.Plugins public Type ConfigurationType => typeof(TConfigurationType); /// <summary> + /// Gets or sets the event handler that is triggered when this configuration changes. + /// </summary> + public EventHandler<BasePluginConfiguration> ConfigurationChanged { get; set; } + + /// <summary> /// Gets the name the assembly file. /// </summary> /// <value>The name of the assembly file.</value> @@ -280,6 +275,8 @@ namespace MediaBrowser.Common.Plugins Configuration = (TConfigurationType)configuration; SaveConfiguration(); + + ConfigurationChanged.Invoke(this, configuration); } /// <inheritdoc /> diff --git a/MediaBrowser.Common/Plugins/IPlugin.cs b/MediaBrowser.Common/Plugins/IPlugin.cs index 1844eb124f..d583a58878 100644 --- a/MediaBrowser.Common/Plugins/IPlugin.cs +++ b/MediaBrowser.Common/Plugins/IPlugin.cs @@ -62,18 +62,6 @@ namespace MediaBrowser.Common.Plugins /// Called when just before the plugin is uninstalled from the server. /// </summary> void OnUninstalling(); - - /// <summary> - /// Registers the plugin's services to the service collection. - /// </summary> - /// <param name="serviceCollection">The service collection.</param> - void RegisterServices(IServiceCollection serviceCollection); - - /// <summary> - /// Unregisters the plugin's services from the service collection. - /// </summary> - /// <param name="serviceCollection">The service collection.</param> - void UnregisterServices(IServiceCollection serviceCollection); } public interface IHasPluginConfiguration diff --git a/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs b/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs new file mode 100644 index 0000000000..3afe874c52 --- /dev/null +++ b/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs @@ -0,0 +1,19 @@ +namespace MediaBrowser.Common.Plugins +{ + using Microsoft.Extensions.DependencyInjection; + + /// <summary> + /// Defines the <see cref="IPluginServiceRegistrator" />. + /// </summary> + public interface IPluginServiceRegistrator + { + /// <summary> + /// Registers the plugin's services with the service collection. + /// </summary> + /// <remarks> + /// This interface is only used for service registration and requires a parameterless constructor. + /// </remarks> + /// <param name="serviceCollection">The service collection.</param> + void RegisterServices(IServiceCollection serviceCollection); + } +} |
