/// <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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        /// <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);
                }
            }
        }