diff --git a/src/DynamoCore/Configuration/PreferenceSettings.cs b/src/DynamoCore/Configuration/PreferenceSettings.cs index e44cf4e1319..fd6ae88c14c 100644 --- a/src/DynamoCore/Configuration/PreferenceSettings.cs +++ b/src/DynamoCore/Configuration/PreferenceSettings.cs @@ -48,14 +48,12 @@ internal static void CopyProperties(this PreferenceSettings source, PreferenceSe /// public class PreferenceSettings : NotificationObject, IPreferences, IRenderPrecisionPreference, IDisablePackageLoadingPreferences, ILogSource, IHideAutocompleteMethodOptions { - internal static PreferenceSettings dynamoModelRuntimePreferenceSettings; - internal readonly static Lazy lazy = new Lazy (() => PreferenceSettings.Load(PathManager.Instance.PreferenceFilePath)); [XmlIgnore] - public static PreferenceSettings Instance { get { return dynamoModelRuntimePreferenceSettings ?? lazy.Value; } } + public static PreferenceSettings Instance { get; internal set; } = lazy.Value; private string numberFormat; private string lastUpdateDownloadPath; diff --git a/src/DynamoCore/Models/DynamoModel.cs b/src/DynamoCore/Models/DynamoModel.cs index 759477b0fb6..e020b3ee84e 100644 --- a/src/DynamoCore/Models/DynamoModel.cs +++ b/src/DynamoCore/Models/DynamoModel.cs @@ -304,7 +304,8 @@ internal static string AppVersion /// /// Preference settings for this instance of Dynamo. /// - public readonly PreferenceSettings PreferenceSettings; + [Obsolete("this will be removed in 4.0")] + public PreferenceSettings PreferenceSettings => PreferenceSettings.Instance; /// /// Node Factory, used for creating and intantiating loaded Dynamo nodes. @@ -492,9 +493,6 @@ protected virtual void ShutDownCore(bool shutdownHost) Dispose(); PreferenceSettings.SaveInternal(pathManager.PreferenceFilePath); - //Remove reference on shutdown - PreferenceSettings.dynamoModelRuntimePreferenceSettings = null; - OnCleanup(); DynamoSelection.DestroyInstance(); @@ -694,10 +692,7 @@ protected DynamoModel(IStartConfiguration config) OnRequestUpdateLoadBarStatus(new SplashScreenLoadEventArgs(Resources.SplashScreenInitPreferencesSettings, 30)); - PreferenceSettings = (PreferenceSettings)CreateOrLoadPreferences(config.Preferences); - - //Set the DynamoModel.PreferenceSetting as a static reference to the PreferenceSetting class for use in PreferenceSettings.Instance - PreferenceSettings.dynamoModelRuntimePreferenceSettings = PreferenceSettings; + PreferenceSettings.Instance = (PreferenceSettings)CreateOrLoadPreferences(config.Preferences); if (PreferenceSettings != null) { @@ -786,7 +781,7 @@ protected DynamoModel(IStartConfiguration config) if (migrator != null) { var isFirstRun = PreferenceSettings.IsFirstRun; - PreferenceSettings = migrator.PreferenceSettings; + PreferenceSettings.Instance = migrator.PreferenceSettings; // Preserve the preference settings for IsFirstRun as this needs to be set // only by UsageReportingManager