I would need some help how to handle this exception:
StackTrace : at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.Configuration.GetSection(String sectionName)
at System.Configuration.ClientSettingsStore.GetConfigSection(Configuration config, String sectionName, Boolean declare)
at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
at System.Configuration.LocalFileSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection values)
at System.Configuration.SettingsBase.SaveCore()
at System.Configuration.SettingsBase.Save()
at System.Configuration.ApplicationSettingsBase.Save()
at BayesianSpamFilter.MainWindow.SaveSettings()
This is what I am doing:
string percentG = Properties.Settings.Default.PercentG;
string percentB = Properties.Settings.Default.PercentB;
string percentR = Properties.Settings.Default.PercentR;
string percentF = Properties.Settings.Default.PercentF;
string spamDbM = Properties.Settings.Default.SpamDbM;
string spamDbS = Properties.Settings.Default.SpamDbS;
string hamDbM = Properties.Settings.Default.HamDbM;
string hamDbS = Properties.Settings.Default.HamDbS;
private void SaveSettings()
{
percentG = JsonConvert.SerializeObject(spamPercentageGraham);
Properties.Settings.Default.PercentG = percentG;
percentB = JsonConvert.SerializeObject(spamPercentageBurton);
Properties.Settings.Default.PercentB = percentB;
percentR = JsonConvert.SerializeObject(spamPercentageRobinson);
Properties.Settings.Default.PercentR = percentR;
percentF = JsonConvert.SerializeObject(spamPercentageFisher);
Properties.Settings.Default.PercentF = percentF;
spamDbM = JsonConvert.SerializeObject(spamDatabaseMulti);
Properties.Settings.Default.SpamDbM = spamDbM;
spamDbS = JsonConvert.SerializeObject(spamDatabaseSingles);
Properties.Settings.Default.SpamDbS = spamDbS;
hamDbM = JsonConvert.SerializeObject(hamDatabaseMulti);
Properties.Settings.Default.HamDbM = hamDbM;
hamDbS = JsonConvert.SerializeObject(hamDatabaseSingles);
Properties.Settings.Default.HamDbS = hamDbS;
Properties.Settings.Default.Save();
}
private void LoadSettings()
{
spamPercentageGraham = JsonConvert.DeserializeObject<Dictionary<string, double>>(percentG);
spamPercentageBurton = JsonConvert.DeserializeObject<Dictionary<string, double>>(percentB);
spamPercentageRobinson = JsonConvert.DeserializeObject<Dictionary<string, double>>(percentR);
spamPercentageFisher = JsonConvert.DeserializeObject<Dictionary<string, double>>(percentF);
spamDatabaseMulti = JsonConvert.DeserializeObject<Dictionary<string, int>>(spamDbM);
spamDatabaseSingles = JsonConvert.DeserializeObject<Dictionary<string, int>>(spamDbS);
hamDatabaseMulti = JsonConvert.DeserializeObject<Dictionary<string, int>>(hamDbM);
hamDatabaseSingles = JsonConvert.DeserializeObject<Dictionary<string, int>>(hamDbS);
}
Also: Count()
for each of the dictionaries is around 300k. I am not running out of physical memory, nor RAM.. I am counting many diferent things with those dictionaries so I need all of them.