private void Load()
{
// ------------------------------------------------------------
// Enumerate through individual settings nodes
// ------------------------------------------------------------
var dic = BlogService.LoadSettings();
var settingsProps = GetSettingsTypePropertyDict();
foreach (System.Collections.DictionaryEntry entry in dic)
{
string name = (string)entry.Key;
System.Reflection.PropertyInfo property = null;
if (settingsProps.TryGetValue(name, out property))
{
// ------------------------------------------------------------
// Attempt to apply configured setting
// ------------------------------------------------------------
try
{
if (property.CanWrite)
{
string value = (string)entry.Value;
var propType = property.PropertyType;
if (propType.IsEnum)
{
property.SetValue(this, Enum.Parse(propType, value), null);
}
else
{
property.SetValue(this, Convert.ChangeType(value, propType, CultureInfo.CurrentCulture), null);
}
}
}
catch (Exception e)
{
Utils.Log(string.Format("Error loading blog settings: {0}", e.Message));
}
}
}
}