ソースを参照

Merge pull request #4339 from BaronGreenback/PluginConfigSave

Making default Plugin configurations accessible when developing.
Joshua M. Boniface 4 年 前
コミット
d2cef78db3
1 ファイル変更15 行追加4 行削除
  1. 15 4
      MediaBrowser.Common/Plugins/BasePlugin.cs

+ 15 - 4
MediaBrowser.Common/Plugins/BasePlugin.cs

@@ -247,23 +247,34 @@ namespace MediaBrowser.Common.Plugins
             }
             catch
             {
-                return (TConfigurationType)Activator.CreateInstance(typeof(TConfigurationType));
+                var config = (TConfigurationType)Activator.CreateInstance(typeof(TConfigurationType));
+                SaveConfiguration(config);
+                return config;
             }
         }
 
         /// <summary>
         /// Saves the current configuration to the file system.
         /// </summary>
-        public virtual void SaveConfiguration()
+        /// <param name="config">Configuration to save.</param>
+        public virtual void SaveConfiguration(TConfigurationType config)
         {
             lock (_configurationSaveLock)
             {
                 _directoryCreateFn(Path.GetDirectoryName(ConfigurationFilePath));
 
-                XmlSerializer.SerializeToFile(Configuration, ConfigurationFilePath);
+                XmlSerializer.SerializeToFile(config, ConfigurationFilePath);
             }
         }
 
+        /// <summary>
+        /// Saves the current configuration to the file system.
+        /// </summary>
+        public virtual void SaveConfiguration()
+        {
+            SaveConfiguration(Configuration);
+        }
+
         /// <inheritdoc />
         public virtual void UpdateConfiguration(BasePluginConfiguration configuration)
         {
@@ -274,7 +285,7 @@ namespace MediaBrowser.Common.Plugins
 
             Configuration = (TConfigurationType)configuration;
 
-            SaveConfiguration();
+            SaveConfiguration(Configuration);
 
             ConfigurationChanged?.Invoke(this, configuration);
         }