Antmicro.Migrant.Generators.ReaderGenerationContext.PushDeserializedObjectOntoStack C# (CSharp) Method

PushDeserializedObjectOntoStack() public method

public PushDeserializedObjectOntoStack ( System.Action pushReferenceIdOntoStackAction, bool skipSurrogate = false ) : void
pushReferenceIdOntoStackAction System.Action
skipSurrogate bool
return void
        public void PushDeserializedObjectOntoStack(Action pushReferenceIdOntoStackAction, bool skipSurrogate = false)
        {
            PushObjectReaderOntoStack();
            pushReferenceIdOntoStackAction();
            generator.PushIntegerOntoStack(skipSurrogate ? 1 : 0);
            generator.Call<ObjectReader>(x => x.GetObjectByReferenceId(0, false));
        }

Same methods

ReaderGenerationContext::PushDeserializedObjectOntoStack ( LocalBuilder referenceIdLocal, bool skipSurrogate = false ) : void

Usage Example

        private static void GenerateUpdateFields(ReaderGenerationContext context, Type formalType, LocalBuilder objectIdLocal)
        {
            var fields = context.DisableStamping
                ? ((TypeSimpleDescriptor)formalType).FieldsToDeserialize
                : ((TypeFullDescriptor)formalType).FieldsToDeserialize;

            foreach (var fieldOrType in fields)
            {
                if (fieldOrType.Field == null)
                {
                    GenerateReadField(context, fieldOrType.TypeToOmit, false);
                    context.Generator.Emit(OpCodes.Pop);
                    continue;
                }
                var field = fieldOrType.Field;

                if (field.IsDefined(typeof(TransientAttribute), false))
                {
                    if (field.IsDefined(typeof(ConstructorAttribute), false))
                    {
                        context.Generator.PushFieldInfoOntoStack(field);
                        context.PushDeserializedObjectOntoStack(objectIdLocal);

                        context.Generator.GenerateCodeCall <FieldInfo, object>(GenerateUpdateFieldsStaticHelper);
                    }
                    continue;
                }

                context.PushDeserializedObjectOntoStack(objectIdLocal);
                GenerateReadField(context, field.FieldType, false);
                context.Generator.Emit(OpCodes.Stfld, field);
            }
        }
All Usage Examples Of Antmicro.Migrant.Generators.ReaderGenerationContext::PushDeserializedObjectOntoStack