private object ConvertToType(ConfigurableField type) { switch (type.ValueType) { case ConfigurableField.Type.FLOAT: return(Convert.ToSingle(type.StringValue)); case ConfigurableField.Type.INT: return(Convert.ToInt32(type.StringValue)); case ConfigurableField.Type.BOOLEAN: return(type.BoolValue); case ConfigurableField.Type.STRING: default: return(type.StringValue); } }
private List <ConfigurableField> GetConfigurables(Type type) { List <ConfigurableField> Configurables = new List <ConfigurableField>(); FieldInfo[] fields = type.GetFields(); List <FieldInfo> configurableFields = GetConfigurableFields(type); object instance = Activator.CreateInstance(type); if (configurableFields != null) { foreach (FieldInfo field in configurableFields) { object value = field.GetValue(instance); ConfigurableField newC = new ConfigurableField(field.Name, value.ToString(), GetTypeFromValue(value)); if (value is bool) { newC.BoolValue = (bool)value; } Configurables.Add(newC); } } return(Configurables); }