Example #1
0
        // Token: 0x06000065 RID: 101 RVA: 0x000045BC File Offset: 0x000027BC
        public Action <EntityState> GenerateInstanceFieldInitializerDelegate()
        {
            Type stateType = this.serializedType.stateType;

            if (stateType == null)
            {
                return(null);
            }
            List <EntityStateManager.StateInfo.FieldValuePair> list = new List <EntityStateManager.StateInfo.FieldValuePair>();

            for (int i = 0; i < this.stateFieldList.Count; i++)
            {
                EntityStateManager.StateInfo.Field          field          = this.stateFieldList[i];
                EntityStateManager.StateInfo.FieldValuePair fieldValuePair = new EntityStateManager.StateInfo.FieldValuePair
                {
                    fieldInfo = stateType.GetField(field.GetFieldName(), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy),
                    value     = field.valueAsSystemObject
                };
                if (!(fieldValuePair.fieldInfo == null))
                {
                    list.Add(fieldValuePair);
                }
            }
            EntityStateManager.StateInfo.FieldValuePair[] fieldValuePairs = list.ToArray();
            if (fieldValuePairs.Length == 0)
            {
                return(null);
            }
            return(delegate(EntityState entityState)
            {
                for (int j = 0; j < fieldValuePairs.Length; j++)
                {
                    EntityStateManager.StateInfo.FieldValuePair fieldValuePair2 = fieldValuePairs[j];
                    fieldValuePair2.fieldInfo.SetValue(entityState, fieldValuePair2.value);
                }
            });
        }