/// <summary> /// Returns the fully qualified settings file name by preferring path of /// the executable. The path of user's local application data is returned /// in case of missing write permission on preferred path. /// </summary> /// <returns> /// The fully qualified settings file name. /// </returns> private static String GetSettingsFilename() { String site = Path.GetFullPath(Application.ExecutablePath); String file = Path.ChangeExtension(Path.GetFileName(site), ".conf"); String path = Path.GetDirectoryName(site); if (SettingsSerializer.IsAccessPermitted(path, FileSystemRights.Write)) { return(Path.Combine(path, file)); } if (String.IsNullOrWhiteSpace(Application.CompanyName)) { // May never happen, but safety first... throw new ArgumentException("Company name is invalid."); } if (String.IsNullOrWhiteSpace(Application.ProductName)) { // May never happen, but safety first... throw new ArgumentException("Product name is invalid."); } path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); path = Path.Combine(path, Application.CompanyName, Application.ProductName); Directory.CreateDirectory(path); return(Path.Combine(path, file)); }
/// <summary> /// Tries to load settings using default settings file. /// </summary> /// <remarks> /// This method tries to load settings using default settings file. /// </remarks> /// <typeparam name="TInstance"> /// The type to load the settings file content into. /// </typeparam> /// <param name="instance"> /// The resulting instance of the settings file content. /// </param> /// <returns> /// In case of an error the method returns false. Otherwise the method /// returns true. /// </returns> public static Boolean Load <TInstance>(out TInstance instance) where TInstance : class, new() { return(SettingsSerializer.Load(SettingsSerializer.Filename, out instance)); }
static SettingsSerializer() { SettingsSerializer.filename = SettingsSerializer.GetSettingsFilename(); }
/// <summary> /// Tries to save settings using default settings file. /// </summary> /// <remarks> /// This method tries to save settings using default settings file. /// </remarks> /// <typeparam name="TInstance"> /// The type to save the settings file content from. /// </typeparam> /// <param name="instance"> /// The instance of the settings. /// </param> /// <returns> /// In case of an error the method returns false. Otherwise the method /// returns true. /// </returns> public static Boolean Save <TInstance>(TInstance instance) where TInstance : class, new() { return(SettingsSerializer.Save(SettingsSerializer.Filename, instance)); }