4 writes to _ilg
System.Private.DataContractSerialization (4)
System\Runtime\Serialization\Json\JsonFormatReaderGenerator.cs (4)
66_ilg = new CodeGenerator(); 129_ilg = GenerateCollectionReaderHelper(collectionContract, false /*isGetOnlyCollection*/); 140_ilg = GenerateCollectionReaderHelper(collectionContract, true /*isGetOnlyCollection*/); 148_ilg = new CodeGenerator();
300 references to _ilg
System.Private.DataContractSerialization (300)
System\Runtime\Serialization\Json\JsonFormatReaderGenerator.cs (300)
70BeginMethod(_ilg, "Read" + DataContract.SanitizeTypeName(classContract.XmlName!.Name) + "FromJson", typeof(JsonFormatClassReaderDelegate), memberAccessFlag); 85_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 94_ilg.Call(_objectLocal, JsonFormatGeneratorStatics.OnDeserializationMethod, null); 100_ilg.Load(_objectLocal); 107_ilg.ConvertValue(_objectLocal.LocalType, typeof(DateTimeOffsetAdapter)); 108_ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetMethod); 109_ilg.ConvertValue(typeof(DateTimeOffset), _ilg.CurrentMethod.ReturnType); 113_ilg.ConvertValue(_objectLocal.LocalType, typeof(MemoryStreamAdapter)); 114_ilg.Call(XmlFormatGeneratorStatics.GetMemoryStreamMethod); 115_ilg.ConvertValue(typeof(System.IO.MemoryStream), _ilg.CurrentMethod.ReturnType); 119_ilg.ConvertValue(_objectLocal.LocalType, _ilg.CurrentMethod.ReturnType); 122return (JsonFormatClassReaderDelegate)_ilg.EndMethod(); 131_ilg.Load(_objectLocal); 132_ilg.ConvertValue(_objectLocal.LocalType, _ilg.CurrentMethod.ReturnType); 133return (JsonFormatCollectionReaderDelegate)_ilg.EndMethod(); 142return (JsonFormatGetOnlyCollectionReaderDelegate)_ilg.EndMethod(); 154BeginMethod(_ilg, "Read" + DataContract.SanitizeTypeName(collectionContract.XmlName.Name) + "FromJson" + "IsGetOnly", typeof(JsonFormatGetOnlyCollectionReaderDelegate), memberAccessFlag); 158BeginMethod(_ilg, "Read" + DataContract.SanitizeTypeName(collectionContract.XmlName.Name) + "FromJson", typeof(JsonFormatCollectionReaderDelegate), memberAccessFlag); 173_collectionContractArg = _ilg.GetArg(4); 174return _ilg; 192_xmlReaderArg = _ilg.GetArg(0); 193_contextArg = _ilg.GetArg(1); 194_emptyDictionaryStringArg = _ilg.GetArg(2); 195_memberNamesArg = _ilg.GetArg(3); 204_objectLocal = _ilg.DeclareLocal(type); 208_ilg.LoadMember(typeof(DBNull).GetField("Value")!); 209_ilg.Stloc(_objectLocal); 215_ilg.Ldloca(_objectLocal); 216_ilg.InitObj(type); 220_ilg.New(classContract.GetNonAttributedTypeConstructor()!); 221_ilg.Stloc(_objectLocal); 226_ilg.Call(null, JsonFormatGeneratorStatics.GetUninitializedObjectMethod, classContract.TypeForInitialization); 227_ilg.ConvertValue(typeof(object), type); 228_ilg.Stloc(_objectLocal); 238_ilg.LoadAddress(_objectLocal); 239_ilg.ConvertAddress(_objectLocal.LocalType, _objectType!); 240_ilg.Load(_contextArg); 241_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 242_ilg.Call(classContract.OnDeserializing); 252_ilg.LoadAddress(_objectLocal); 253_ilg.ConvertAddress(_objectLocal.LocalType, _objectType!); 254_ilg.Load(_contextArg); 255_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 256_ilg.Call(classContract.OnDeserialized); 271_ilg.Load(_contextArg); 272_ilg.LoadAddress(_objectLocal); 274_ilg.ConvertAddress(_objectLocal.LocalType, typeof(IObjectReference)); 276_ilg.Load(Globals.NewObjectId); 277_ilg.Call(XmlFormatGeneratorStatics.GetRealObjectMethod); 278_ilg.ConvertValue(typeof(object), _ilg.CurrentMethod.ReturnType); 291LocalBuilder extensionDataLocal = _ilg.DeclareLocal(typeof(ExtensionDataObject)); 292_ilg.New(JsonFormatGeneratorStatics.ExtensionDataObjectCtor); 293_ilg.Store(extensionDataLocal); 301_ilg.Call(_objectLocal, extensionDataSetMethod, extensionDataLocal); 316_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, memberCount); 318BitFlagsGenerator expectedElements = new BitFlagsGenerator(memberCount, _ilg); 323LocalBuilder memberIndexLocal = _ilg.DeclareLocal(typeof(int), -1); 324Label throwDuplicateMemberLabel = _ilg.DefineLabel(); 325Label throwMissingRequiredMembersLabel = _ilg.DefineLabel(); 327object forReadElements = _ilg.For(null, null, null); 328_ilg.Call(null, XmlFormatGeneratorStatics.MoveToNextElementMethod, _xmlReaderArg); 329_ilg.IfFalseBreak(forReadElements); 330_ilg.Call(_contextArg, JsonFormatGeneratorStatics.GetJsonMemberIndexMethod, _xmlReaderArg, _memberNamesArg, memberIndexLocal, extensionDataLocal); 333Label[] memberLabels = _ilg.Switch(memberCount); 335_ilg.EndSwitch(); 339_ilg.Pop(); 341_ilg.EndFor(); 343Label endOfTypeLabel = _ilg.DefineLabel(); 344_ilg.Br(endOfTypeLabel); 346_ilg.MarkLabel(throwDuplicateMemberLabel); 347_ilg.Call(null, JsonFormatGeneratorStatics.ThrowDuplicateMemberExceptionMethod, _objectLocal, _memberNamesArg, memberIndexLocal); 349_ilg.MarkLabel(throwMissingRequiredMembersLabel); 350_ilg.Load(_objectLocal); 351_ilg.ConvertValue(_objectLocal.LocalType, typeof(object)); 352_ilg.Load(_memberNamesArg); 355_ilg.Call(JsonFormatGeneratorStatics.ThrowMissingRequiredMembersMethod); 357_ilg.MarkLabel(endOfTypeLabel); 372_ilg.Case(memberLabels[memberCount]); 373_ilg.Set(memberIndexLocal, memberCount); 375_ilg.Brfalse(throwDuplicateMemberLabel); 379_ilg.LoadAddress(_objectLocal); 380_ilg.LoadMember(dataMember.MemberInfo); 381value = _ilg.DeclareLocal(memberType); 382_ilg.Stloc(value); 383_ilg.Call(_contextArg, XmlFormatGeneratorStatics.StoreCollectionMemberInfoMethod, value); 388_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ResetCollectionMemberInfoMethod); 390_ilg.LoadAddress(_objectLocal); 391_ilg.ConvertAddress(_objectLocal.LocalType, _objectType!); 392_ilg.Ldloc(value); 393_ilg.StoreMember(dataMember.MemberInfo); 396_ilg.EndCase(); 405_ilg.Load(expectedElements.GetLocal(i)); 406_ilg.Load(requiredElements[i]); 407_ilg.And(); 408_ilg.Load(0); 409_ilg.Ceq(); 410_ilg.Brfalse(throwMissingRequiredMembersLabel); 416LocalBuilder localArray = _ilg.DeclareLocal(typeof(byte[])); 417_ilg.NewArray(typeof(byte), array.Length); 418_ilg.Store(localArray); 421_ilg.StoreArrayElement(localArray, i, array[i]); 423_ilg.Load(localArray); 461_ilg.LoadAddress(_objectLocal); 462_ilg.ConvertAddress(_objectLocal.LocalType, _objectType!); 463_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadSerializationInfoMethod, _xmlReaderArg, classContract.UnderlyingType); 464_ilg.Load(_contextArg); 465_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 466_ilg.Call(ctor); 473LocalBuilder value = _ilg.DeclareLocal(type); 485LocalBuilder objectId = _ilg.DeclareLocal(typeof(string)); 486_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadAttributesMethod, _xmlReaderArg); 487_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadIfNullOrRefMethod, _xmlReaderArg, type, DataContract.IsTypeSerializable(type)); 488_ilg.Stloc(objectId); 490_ilg.If(objectId, Cmp.EqualTo, Globals.NullObjectId); 493_ilg.LoadAddress(value); 494_ilg.InitObj(value.LocalType); 500_ilg.Load(null); 501_ilg.Stloc(value); 507_ilg.ElseIfIsEmptyString(objectId); 508_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 509_ilg.Stloc(objectId); 512_ilg.IfNotIsEmptyString(objectId); 514_ilg.EndIf(); 519value = _ilg.DeclareLocal(type); 524_ilg.Call(_xmlReaderArg, primitiveContract.XmlFormatReaderMethod); 525_ilg.Stloc(value); 527_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, value); 534_ilg.Else(); 539_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetExistingObjectMethod, objectId, type, name, string.Empty); 540_ilg.ConvertValue(typeof(object), type); 541_ilg.Stloc(value); 543_ilg.EndIf(); 547_ilg.If(objectId, Cmp.NotEqualTo, Globals.NullObjectId); 549_ilg.EndIf(); 564_ilg.Load(_contextArg); 565_ilg.Load(_xmlReaderArg); 567_ilg.Load(DataContract.GetId(declaredType.TypeHandle)); 568_ilg.Ldtoken(declaredType); 569_ilg.Load(name); 571_ilg.Load(string.Empty); 572_ilg.Call(XmlFormatGeneratorStatics.InternalDeserializeMethod); 576_ilg.Call(JsonFormatGeneratorStatics.UnboxPointer); 580_ilg.ConvertValue(typeof(object), type); 582_ilg.Stloc(value); 590_ilg.LoadAddress(outerValue); 591_ilg.Load(innerValue); 595_ilg.New(type.GetConstructor(new Type[] { innerType })!); 598_ilg.Call(outerType.GetConstructor(new Type[] { innerType })!); 633_objectLocal = _ilg.DeclareLocal(type); 638_ilg.Ldloca(_objectLocal); 639_ilg.InitObj(type); 643_ilg.New(constructor); 644_ilg.Stloc(_objectLocal); 645_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 653_ilg.Load(_contextArg); 654_ilg.LoadMember(JsonFormatGeneratorStatics.UseSimpleDictionaryFormatReadProperty); 655_ilg.If(); 659_ilg.Else(); 662LocalBuilder objectId = _ilg.DeclareLocal(typeof(string)); 663_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 664_ilg.Stloc(objectId); 670_ilg.IfNot(); 676growingCollection = _ilg.DeclareLocal(type); 677_ilg.NewArray(itemType, 32); 678_ilg.Stloc(growingCollection); 680LocalBuilder i = _ilg.DeclareLocal(typeof(int)); 681object forLoop = _ilg.For(i, 0, int.MaxValue); 684_ilg.If(); 685_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 691_ilg.Call(null, ensureArraySizeMethod, growingCollection, i); 692_ilg.Stloc(growingCollection); 693_ilg.StoreArrayElement(growingCollection, i, value); 697_ilg.Else(); 699_ilg.If(); 700_ilg.Break(forLoop); 701_ilg.Else(); 703_ilg.EndIf(); 704_ilg.EndIf(); 706_ilg.EndFor(); 710_ilg.Call(null, trimArraySizeMethod, growingCollection, i); 711_ilg.Stloc(_objectLocal); 712_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, _objectLocal); 717_ilg.Else(); 718_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, _objectLocal); 719_ilg.EndIf(); 724_ilg.EndIf(); 772LocalBuilder nodeType = _ilg.DeclareLocal(typeof(XmlNodeType)); 774_ilg.BeginWhileCondition(); 775_ilg.Call(_xmlReaderArg, JsonFormatGeneratorStatics.MoveToContentMethod); 776_ilg.Stloc(nodeType); 777_ilg.Load(nodeType); 778_ilg.Load(XmlNodeType.EndElement); 779_ilg.BeginWhileBody(Cmp.NotEqualTo); 781_ilg.Load(nodeType); 782_ilg.Load(XmlNodeType.Element); 783_ilg.If(Cmp.NotEqualTo); 785_ilg.EndIf(); 787_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 791_ilg.Load(keyType); 794_ilg.Load(_xmlReaderArg); 795_ilg.Call(JsonFormatGeneratorStatics.GetJsonMemberNameMethod); 799_ilg.Call(JsonFormatGeneratorStatics.ParseEnumMethod); 800_ilg.ConvertValue(typeof(object), keyType); 804_ilg.Call(keyDataContract.ParseMethod!); 806LocalBuilder pairKey = _ilg.DeclareLocal(keyType); 807_ilg.Stloc(pairKey); 810LocalBuilder pairKeyNullable = _ilg.DeclareLocal(keyTypeOriginal); 818_ilg.EndWhile(); 829LocalBuilder size = _ilg.DeclareLocal(typeof(int)); 831_objectLocal = _ilg.DeclareLocal(type); 832_ilg.Load(_contextArg); 833_ilg.LoadMember(XmlFormatGeneratorStatics.GetCollectionMemberMethod); 834_ilg.ConvertValue(typeof(object), type); 835_ilg.Stloc(_objectLocal); 841_ilg.Load(_contextArg); 842_ilg.LoadMember(JsonFormatGeneratorStatics.UseSimpleDictionaryFormatReadProperty); 843_ilg.If(); 847_ilg.If(_objectLocal, Cmp.EqualTo, null); 848_ilg.Call(null, XmlFormatGeneratorStatics.ThrowNullValueReturnedForGetOnlyCollectionExceptionMethod, type); 849_ilg.EndIf(); 854_ilg.Call(_contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, _xmlReaderArg, size, _memberNamesArg, _emptyDictionaryStringArg); 856_ilg.Else(); 861_ilg.If(); 865_ilg.If(_objectLocal, Cmp.EqualTo, null); 866_ilg.Call(null, XmlFormatGeneratorStatics.ThrowNullValueReturnedForGetOnlyCollectionExceptionMethod, type); 867_ilg.EndIf(); 872_ilg.Load(_objectLocal); 873_ilg.Call(XmlFormatGeneratorStatics.GetArrayLengthMethod); 874_ilg.Stloc(size); 877LocalBuilder i = _ilg.DeclareLocal(typeof(int)); 878object forLoop = _ilg.For(i, 0, int.MaxValue); 880_ilg.If(); 881_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 885_ilg.If(size, Cmp.EqualTo, i); 886_ilg.Call(null, XmlFormatGeneratorStatics.ThrowArrayExceededSizeExceptionMethod, size, type); 887_ilg.Else(); 888_ilg.StoreArrayElement(_objectLocal, i, value); 889_ilg.EndIf(); 893_ilg.Else(); 895_ilg.If(); 896_ilg.Break(forLoop); 897_ilg.Else(); 899_ilg.EndIf(); 900_ilg.EndIf(); 901_ilg.EndFor(); 902_ilg.Call(_contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, _xmlReaderArg, size, _memberNamesArg, _emptyDictionaryStringArg); 904_ilg.EndIf(); 908_ilg.EndIf(); 949_ilg.Load(_xmlReaderArg); 950_ilg.ConvertValue(typeof(XmlReaderDelegator), typeof(JsonReaderDelegator)); 951_ilg.Load(_contextArg); 952_ilg.Load(_memberNamesArg); 954_ilg.Load(_emptyDictionaryStringArg); 956_ilg.Load(-1); 957_ilg.Ldloca(_objectLocal); 958_ilg.Call(typeof(JsonReaderDelegator).GetMethod(readArrayMethod, Globals.ScanAllMembers)!); 970_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ResetAttributesMethod); 971LocalBuilder value = _ilg.DeclareLocal(itemType); 972_ilg.Load(_collectionContractArg); 973_ilg.Call(JsonFormatGeneratorStatics.GetItemContractMethod); 974_ilg.Call(JsonFormatGeneratorStatics.GetRevisedItemContractMethod); 975_ilg.Load(_xmlReaderArg); 976_ilg.Load(_contextArg); 977_ilg.Call(JsonFormatGeneratorStatics.ReadJsonValueMethod); 978_ilg.ConvertValue(typeof(object), itemType); 979_ilg.Stloc(value); 1001LocalBuilder pairKey = _ilg.DeclareLocal(keyMember.MemberType); 1002LocalBuilder pairValue = _ilg.DeclareLocal(valueMember.MemberType); 1003_ilg.LoadAddress(value); 1004_ilg.LoadMember(keyMember.MemberInfo); 1005_ilg.Stloc(pairKey); 1006_ilg.LoadAddress(value); 1007_ilg.LoadMember(valueMember.MemberInfo); 1008_ilg.Stloc(pairValue); 1016_ilg.Call(collection, collectionContract.AddMethod, value); 1018_ilg.Pop(); 1026_ilg.Call(collection, collectionContract.AddMethod, pairKey, pairValue); 1028_ilg.Pop(); 1034_ilg.If(); 1035_ilg.Call(_contextArg, XmlFormatGeneratorStatics.SkipUnknownElementMethod, _xmlReaderArg); 1036_ilg.Dec(iterator); 1037_ilg.Else(); 1039_ilg.EndIf(); 1044_ilg.Call(_xmlReaderArg, JsonFormatGeneratorStatics.IsStartElementMethod2, nameArg, nsArg); 1049_ilg.Call(_xmlReaderArg, JsonFormatGeneratorStatics.IsStartElementMethod0); 1054_ilg.Load(_xmlReaderArg); 1055_ilg.LoadMember(JsonFormatGeneratorStatics.NodeTypeProperty); 1056_ilg.Load(XmlNodeType.EndElement); 1057_ilg.Ceq(); 1062_ilg.Call(null, XmlFormatGeneratorStatics.CreateUnexpectedStateExceptionMethod, expectedState, _xmlReaderArg); 1063_ilg.Throw(); 1069_ilg.CallStringFormat(msg, values); 1071_ilg.Load(msg); 1077_ilg.New(JsonFormatGeneratorStatics.SerializationExceptionCtor); 1078_ilg.Throw();