Example #1
0
            public void GenerateTypeIterator(IILGen ilGenerator, Action <IILGen> pushObj, Action <IILGen> pushCtx,
                                             Type type)
            {
                var allProps = _objectTypeDescriptor.GetPreferredType() !.GetProperties(BindingFlags.Instance | BindingFlags.Public);

                foreach (var pair in _objectTypeDescriptor._fields)
                {
                    if (pair.Value.Sealed)
                    {
                        continue;
                    }
                    ilGenerator
                    .Do(pushCtx)
                    .Do(pushObj)
                    .Castclass(_objectTypeDescriptor._type !)
                    .Callvirt(allProps.First(p => GetPersistentName(p) == pair.Key).GetAnyGetMethod() !)
                    .Callvirt(typeof(IDescriptorSerializerLiteContext).GetMethod(nameof(IDescriptorSerializerLiteContext.StoreNewDescriptors)) !);
                }
            }
Example #2
0
            public void GenerateTypeIterator(IILGen ilGenerator, Action <IILGen> pushObj, Action <IILGen> pushCtx,
                                             Type type)
            {
                var allProps = _objectTypeDescriptor.GetPreferredType().GetProperties();

                foreach (var pair in _objectTypeDescriptor._fields)
                {
                    if (pair.Value.Sealed)
                    {
                        continue;
                    }
                    ilGenerator
                    .Do(pushCtx)
                    .Do(pushObj)
                    .Castclass(_objectTypeDescriptor._type)
                    .Callvirt(allProps.First(p => GetPersitentName(p) == pair.Key).GetGetMethod())
                    .Callvirt(() => default(IDescriptorSerializerLiteContext).StoreNewDescriptors(null));
                }
            }