public static class DataHelper
{
//data 指的是类实例 replace指的是字段名
public static void SetCfgValue(object data, string replace, object value)
{
var configType = data.GetType();
var field = configType.GetField(replace);
//_logger.Info($"replace={replace},Value={unitComp.EquipIDsOfValueDic[aSkill.EquipID][buffId]}" +
// $",{JsonConvert.SerializeObject(dataBuff)}");
if (field.FieldType.IsArray)
{
var elementType = field.FieldType.GetElementType();
var subs = value.ToString().Split('_');
Array myArray = Array.CreateInstance(elementType, subs.Length);
for (int i = 0; i < subs.Length; ++i)
{
if (field.FieldType == typeof(int))
{
myArray.SetValue(int.Parse(subs[i]), i);
}
else if (field.FieldType == typeof(float))
{
myArray.SetValue(float.Parse(subs[i]), i);
}
else if (field.FieldType == typeof(string))
{
myArray.SetValue(subs[i], i);
}
}
field.SetValue(data, myArray);
}
else
{
if (field.FieldType == typeof(int))
{
field.SetValue(data, int.Parse(value.ToString()));
}
else if (field.FieldType == typeof(float))
{
field.SetValue(data, float.Parse(value.ToString()));
}
else if (field.FieldType == typeof(string))
{
field.SetValue(data, value.ToString());
}
else
{
field.SetValue(data, value.ToString());
}
}
}
}