示例#1
0
    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);
        }
    }
示例#2
0
    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);
    }