4 writes to ilg
System.Runtime.Serialization (4)
System\Runtime\Serialization\XmlFormatReaderGenerator.cs (4)
122ilg = new CodeGenerator(); 185ilg = GenerateCollectionReaderHelper(collectionContract, false /*isGetOnlyCollection*/); 194ilg = GenerateCollectionReaderHelper(collectionContract, true /*isGetOnlyCollection*/); 201ilg = new CodeGenerator();
263 references to ilg
System.Runtime.Serialization (263)
System\Runtime\Serialization\XmlFormatReaderGenerator.cs (263)
126ilg.BeginMethod("Read" + classContract.StableName.Name + "FromXml", Globals.TypeOfXmlFormatClassReaderDelegate, memberAccessFlag); 144ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, objectLocal); 149objectId = ilg.DeclareLocal(Globals.TypeOfString, "objectIdRead"); 150ilg.Call(contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 151ilg.Stloc(objectId); 159ilg.Call(objectLocal, XmlFormatGeneratorStatics.OnDeserializationMethod, null); 163ilg.Load(objectLocal); 171ilg.ConvertValue(objectLocal.LocalType, Globals.TypeOfDateTimeOffsetAdapter); 172ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetMethod); 173ilg.ConvertValue(Globals.TypeOfDateTimeOffset, ilg.CurrentMethod.ReturnType); 177ilg.ConvertValue(objectLocal.LocalType, ilg.CurrentMethod.ReturnType); 180return (XmlFormatClassReaderDelegate)ilg.EndMethod(); 187ilg.Load(objectLocal); 188ilg.ConvertValue(objectLocal.LocalType, ilg.CurrentMethod.ReturnType); 189return (XmlFormatCollectionReaderDelegate)ilg.EndMethod(); 196return (XmlFormatGetOnlyCollectionReaderDelegate)ilg.EndMethod(); 207ilg.BeginMethod("Read" + collectionContract.StableName.Name + "FromXml" + "IsGetOnly", Globals.TypeOfXmlFormatGetOnlyCollectionReaderDelegate, memberAccessFlag); 211ilg.BeginMethod("Read" + collectionContract.StableName.Name + "FromXml" + string.Empty, Globals.TypeOfXmlFormatCollectionReaderDelegate, memberAccessFlag); 227collectionContractArg = ilg.GetArg(4); 228return ilg; 233xmlReaderArg = ilg.GetArg(0); 234contextArg = ilg.GetArg(1); 235memberNamesArg = ilg.GetArg(2); 236memberNamespacesArg = ilg.GetArg(3); 243ilg.Call(contextArg, XmlFormatGeneratorStatics.DemandMemberAccessPermissionMethod); 251ilg.Call(contextArg, XmlFormatGeneratorStatics.DemandSerializationFormatterPermissionMethod); 261objectLocal = ilg.DeclareLocal(type, "objectDeserialized"); 265ilg.LoadMember(Globals.TypeOfDBNull.GetField("Value")); 266ilg.Stloc(objectLocal); 272ilg.Ldloca(objectLocal); 273ilg.InitObj(type); 277ilg.New(classContract.GetNonAttributedTypeConstructor()); 278ilg.Stloc(objectLocal); 283ilg.Call(null, XmlFormatGeneratorStatics.GetUninitializedObjectMethod, DataContract.GetIdForInitialization(classContract)); 284ilg.ConvertValue(Globals.TypeOfObject, type); 285ilg.Stloc(objectLocal); 295ilg.LoadAddress(objectLocal); 296ilg.ConvertAddress(objectLocal.LocalType, objectType); 297ilg.Load(contextArg); 298ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 299ilg.Call(classContract.OnDeserializing); 309ilg.LoadAddress(objectLocal); 310ilg.ConvertAddress(objectLocal.LocalType, objectType); 311ilg.Load(contextArg); 312ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 313ilg.Call(classContract.OnDeserialized); 326ilg.Load(contextArg); 327ilg.LoadAddress(objectLocal); 328ilg.ConvertAddress(objectLocal.LocalType, Globals.TypeOfIObjectReference); 329ilg.Load(objectId); 330ilg.Call(XmlFormatGeneratorStatics.GetRealObjectMethod); 331ilg.ConvertValue(Globals.TypeOfObject, ilg.CurrentMethod.ReturnType); 341LocalBuilder extensionDataLocal = ilg.DeclareLocal(Globals.TypeOfExtensionDataObject, "extensionData"); 342ilg.New(XmlFormatGeneratorStatics.ExtensionDataObjectCtor); 343ilg.Store(extensionDataLocal); 351ilg.Call(objectLocal, extensionDataSetMethod, extensionDataLocal); 362ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, memberCount); 364LocalBuilder memberIndexLocal = ilg.DeclareLocal(Globals.TypeOfInt, "memberIndex", -1); 369LocalBuilder requiredIndexLocal = hasRequiredMembers ? ilg.DeclareLocal(Globals.TypeOfInt, "requiredIndex", firstRequiredMember) : null; 371object forReadElements = ilg.For(null, null, null); 372ilg.Call(null, XmlFormatGeneratorStatics.MoveToNextElementMethod, xmlReaderArg); 373ilg.IfFalseBreak(forReadElements); 375ilg.Call(contextArg, XmlFormatGeneratorStatics.GetMemberIndexWithRequiredMembersMethod, xmlReaderArg, memberNamesArg, memberNamespacesArg, memberIndexLocal, requiredIndexLocal, extensionDataLocal); 377ilg.Call(contextArg, XmlFormatGeneratorStatics.GetMemberIndexMethod, xmlReaderArg, memberNamesArg, memberNamespacesArg, memberIndexLocal, extensionDataLocal); 380Label[] memberLabels = ilg.Switch(memberCount); 382ilg.EndSwitch(); 386ilg.Pop(); 388ilg.EndFor(); 391ilg.If(requiredIndexLocal, Cmp.LessThan, memberCount); 392ilg.Call(null, XmlFormatGeneratorStatics.ThrowRequiredMemberMissingExceptionMethod, xmlReaderArg, memberIndexLocal, requiredIndexLocal, memberNamesArg); 393ilg.EndIf(); 406ilg.Case(memberLabels[memberCount], dataMember.Name); 413ilg.Set(requiredIndexLocal, nextRequiredIndex); 420ilg.LoadAddress(objectLocal); 421ilg.LoadMember(dataMember.MemberInfo); 422value = ilg.DeclareLocal(memberType, dataMember.Name + "Value"); 423ilg.Stloc(value); 424ilg.Call(contextArg, XmlFormatGeneratorStatics.StoreCollectionMemberInfoMethod, value); 430ilg.LoadAddress(objectLocal); 431ilg.ConvertAddress(objectLocal.LocalType, objectType); 432ilg.Ldloc(value); 433ilg.StoreMember(dataMember.MemberInfo); 435ilg.Set(memberIndexLocal, memberCount); 436ilg.EndCase(); 466ilg.LoadAddress(objectLocal); 467ilg.ConvertAddress(objectLocal.LocalType, objectType); 468ilg.Call(contextArg, XmlFormatGeneratorStatics.ReadSerializationInfoMethod, xmlReaderArg, classContract.UnderlyingType); 469ilg.Load(contextArg); 470ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 471ilg.Call(ctor); 476LocalBuilder value = ilg.DeclareLocal(type, "valueRead"); 488LocalBuilder objectId = ilg.DeclareLocal(Globals.TypeOfString, "objectIdRead"); 489ilg.Call(contextArg, XmlFormatGeneratorStatics.ReadAttributesMethod, xmlReaderArg); 490ilg.Call(contextArg, XmlFormatGeneratorStatics.ReadIfNullOrRefMethod, xmlReaderArg, type, DataContract.IsTypeSerializable(type)); 491ilg.Stloc(objectId); 493ilg.If(objectId, Cmp.EqualTo, Globals.NullObjectId); 496ilg.LoadAddress(value); 497ilg.InitObj(value.LocalType); 503ilg.Load(null); 504ilg.Stloc(value); 510ilg.ElseIfIsEmptyString(objectId); 511ilg.Call(contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 512ilg.Stloc(objectId); 515ilg.IfNotIsEmptyString(objectId); 517ilg.EndIf(); 522value = ilg.DeclareLocal(type, "innerValueRead"); 527ilg.Call(xmlReaderArg, primitiveContract.XmlFormatReaderMethod); 528ilg.Stloc(value); 530ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, value); 537ilg.Else(); 542ilg.Call(contextArg, XmlFormatGeneratorStatics.GetExistingObjectMethod, objectId, type, name, ns); 543ilg.ConvertValue(Globals.TypeOfObject, type); 544ilg.Stloc(value); 546ilg.EndIf(); 550ilg.If(objectId, Cmp.NotEqualTo, Globals.NullObjectId); 552ilg.EndIf(); 566ilg.Load(contextArg); 567ilg.Load(xmlReaderArg); 569ilg.Load(DataContract.GetId(declaredType.TypeHandle)); 570ilg.Ldtoken(declaredType); 571ilg.Load(name); 572ilg.Load(ns); 573ilg.Call(XmlFormatGeneratorStatics.InternalDeserializeMethod); 576ilg.Call(XmlFormatGeneratorStatics.UnboxPointer); 578ilg.ConvertValue(Globals.TypeOfObject, type); 579ilg.Stloc(value); 585ilg.LoadAddress(outerValue); 586ilg.Load(innerValue); 590ilg.New(type.GetConstructor(new Type[] { innerType })); 593ilg.Call(outerType.GetConstructor(new Type[] { innerType })); 630objectLocal = ilg.DeclareLocal(type, "objectDeserialized"); 635ilg.Ldloca(objectLocal); 636ilg.InitObj(type); 640ilg.New(constructor); 641ilg.Stloc(objectLocal); 642ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, objectLocal); 646LocalBuilder size = ilg.DeclareLocal(Globals.TypeOfInt, "arraySize"); 647ilg.Call(contextArg, XmlFormatGeneratorStatics.GetArraySizeMethod); 648ilg.Stloc(size); 650LocalBuilder objectId = ilg.DeclareLocal(Globals.TypeOfString, "objectIdRead"); 651ilg.Call(contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 652ilg.Stloc(objectId); 658ilg.IfNot(); 661ilg.If(size, Cmp.EqualTo, -1); 666growingCollection = ilg.DeclareLocal(type, "growingCollection"); 667ilg.NewArray(itemType, 32); 668ilg.Stloc(growingCollection); 670LocalBuilder i = ilg.DeclareLocal(Globals.TypeOfInt, "i"); 671object forLoop = ilg.For(i, 0, Int32.MaxValue); 673ilg.If(); 674ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 679ilg.Call(null, ensureArraySizeMethod, growingCollection, i); 680ilg.Stloc(growingCollection); 681ilg.StoreArrayElement(growingCollection, i, value); 685ilg.Else(); 687ilg.If(); 688ilg.Break(forLoop); 689ilg.Else(); 691ilg.EndIf(); 692ilg.EndIf(); 694ilg.EndFor(); 698ilg.Call(null, trimArraySizeMethod, growingCollection, i); 699ilg.Stloc(objectLocal); 700ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, objectLocal); 702ilg.Else(); 704ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, size); 707ilg.NewArray(itemType, size); 708ilg.Stloc(objectLocal); 709ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, objectLocal); 711LocalBuilder j = ilg.DeclareLocal(Globals.TypeOfInt, "j"); 712ilg.For(j, 0, size); 714ilg.If(); 717ilg.StoreArrayElement(objectLocal, j, itemValue); 720ilg.Else(); 722ilg.EndIf(); 723ilg.EndFor(); 724ilg.Call(contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, xmlReaderArg, size, memberNamesArg, memberNamespacesArg); 725ilg.EndIf(); 729ilg.Else(); 730ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, objectLocal); 731ilg.EndIf(); 743objectLocal = ilg.DeclareLocal(type, "objectDeserialized"); 744ilg.Load(contextArg); 745ilg.LoadMember(XmlFormatGeneratorStatics.GetCollectionMemberMethod); 746ilg.ConvertValue(Globals.TypeOfObject, type); 747ilg.Stloc(objectLocal); 751ilg.If(); 752ilg.If(objectLocal, Cmp.EqualTo, null); 753ilg.Call(null, XmlFormatGeneratorStatics.ThrowNullValueReturnedForGetOnlyCollectionExceptionMethod, type); 755ilg.Else(); 756LocalBuilder size = ilg.DeclareLocal(Globals.TypeOfInt, "arraySize"); 759ilg.Load(objectLocal); 760ilg.Call(XmlFormatGeneratorStatics.GetArrayLengthMethod); 761ilg.Stloc(size); 764ilg.Call(contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, objectLocal); 766LocalBuilder i = ilg.DeclareLocal(Globals.TypeOfInt, "i"); 767object forLoop = ilg.For(i, 0, Int32.MaxValue); 769ilg.If(); 770ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 774ilg.If(size, Cmp.EqualTo, i); 775ilg.Call(null, XmlFormatGeneratorStatics.ThrowArrayExceededSizeExceptionMethod, size, type); 776ilg.Else(); 777ilg.StoreArrayElement(objectLocal, i, value); 778ilg.EndIf(); 782ilg.Else(); 784ilg.If(); 785ilg.Break(forLoop); 786ilg.Else(); 788ilg.EndIf(); 789ilg.EndIf(); 790ilg.EndFor(); 791ilg.Call(contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, xmlReaderArg, size, memberNamesArg, memberNamespacesArg); 793ilg.EndIf(); 794ilg.EndIf(); 832ilg.Load(xmlReaderArg); 833ilg.Load(contextArg); 834ilg.Load(memberNamesArg); 835ilg.Load(memberNamespacesArg); 836ilg.Load(size); 837ilg.Ldloca(objectLocal); 838ilg.Call(typeof(XmlReaderDelegator).GetMethod(readArrayMethod, Globals.ScanAllMembers)); 848ilg.Call(contextArg, XmlFormatGeneratorStatics.ResetAttributesMethod); 849LocalBuilder value = ilg.DeclareLocal(itemType, "valueRead"); 850ilg.Load(collectionContractArg); 851ilg.Call(XmlFormatGeneratorStatics.GetItemContractMethod); 852ilg.Load(xmlReaderArg); 853ilg.Load(contextArg); 854ilg.Call(XmlFormatGeneratorStatics.ReadXmlValueMethod); 855ilg.ConvertValue(Globals.TypeOfObject, itemType); 856ilg.Stloc(value); 876LocalBuilder pairKey = ilg.DeclareLocal(keyMember.MemberType, keyMember.Name); 877LocalBuilder pairValue = ilg.DeclareLocal(valueMember.MemberType, valueMember.Name); 878ilg.LoadAddress(value); 879ilg.LoadMember(keyMember.MemberInfo); 880ilg.Stloc(pairKey); 881ilg.LoadAddress(value); 882ilg.LoadMember(valueMember.MemberInfo); 883ilg.Stloc(pairValue); 885ilg.Call(collection, collectionContract.AddMethod, pairKey, pairValue); 887ilg.Pop(); 891ilg.Call(collection, collectionContract.AddMethod, value); 893ilg.Pop(); 900ilg.If(); 901ilg.Call(contextArg, XmlFormatGeneratorStatics.SkipUnknownElementMethod, xmlReaderArg); 902ilg.Dec(iterator); 903ilg.Else(); 905ilg.EndIf(); 910ilg.Call(xmlReaderArg, XmlFormatGeneratorStatics.IsStartElementMethod2, nameArg, nsArg); 915ilg.Call(xmlReaderArg, XmlFormatGeneratorStatics.IsStartElementMethod0); 920ilg.Load(xmlReaderArg); 921ilg.LoadMember(XmlFormatGeneratorStatics.NodeTypeProperty); 922ilg.Load(XmlNodeType.EndElement); 923ilg.Ceq(); 928ilg.Call(null, XmlFormatGeneratorStatics.CreateUnexpectedStateExceptionMethod, expectedState, xmlReaderArg); 929ilg.Throw(); 935ilg.CallStringFormat(msg, values); 937ilg.Load(msg); 943ilg.New(XmlFormatGeneratorStatics.SerializationExceptionCtor); 944ilg.Throw();