/// <summary> /// 支持结构体的赋值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="target"></param> /// <param name="resourceDic"></param> /// <returns></returns> public static object ChargeInfo(object target, ResourceDic resourceDic) { using (var enumerator = resourceDic.GetEnumerator()) { while (enumerator.MoveNext()) { var pair = enumerator.Current; var member = GetFieldOrPropertyMember(target, pair.Key); if (member != null) { if (member is FieldInfo) { var info = (member as FieldInfo); var value = GetValueFromTypeString(info.FieldType, pair.Value); if (value != null) { info.SetValue(target, value); } } else if (member is PropertyInfo) { var info = (member as PropertyInfo); var value = GetValueFromTypeString(info.PropertyType, pair.Value); if (value != null) { info.SetValue(target, value, null); } } } } } return(target); }
public static string FromDictionary(ResourceDic resourceDic) { StringBuilder text = new StringBuilder(); using (var enumerator = resourceDic.GetEnumerator()) { while (enumerator.MoveNext()) { var pair = enumerator.Current; text.Append(string.Format("{0}:{1}\n", pair.Key, pair.Value)); } } return(text.ToString()); }
/// <summary> /// 装载入信息 /// </summary> /// <param name="component"></param> /// <param name="resourceDic"></param> public static void ChargeInfo(this AssemblerStateMechine mechine, Component component, ResourceDic resourceDic) { component.gameObject.SetActive(resourceDic.active); if (!resourceDic.active) { return; } using (var enumerator = resourceDic.GetEnumerator()) { while (enumerator.MoveNext()) { var pair = enumerator.Current; ChargeInfoInternal(component, mechine, pair.Key, pair.Value); } } }