2 writes to ilg
System.Runtime.Serialization (2)
System\Runtime\Serialization\Json\JsonFormatWriterGenerator.cs (2)
91ilg = new CodeGenerator(); 122ilg = new CodeGenerator();
177 references to ilg
System.Runtime.Serialization (177)
System\Runtime\Serialization\Json\JsonFormatWriterGenerator.cs (177)
95BeginMethod(ilg, "Write" + classContract.StableName.Name + "ToJson", typeof(JsonFormatClassWriterDelegate), memberAccessFlag); 109memberNamesArg = ilg.GetArg(4); 117return (JsonFormatClassWriterDelegate)ilg.EndMethod(); 126BeginMethod(ilg, "Write" + collectionContract.StableName.Name + "ToJson", typeof(JsonFormatCollectionWriterDelegate), memberAccessFlag); 146return (JsonFormatCollectionWriterDelegate)ilg.EndMethod(); 167xmlWriterArg = ilg.GetArg(0); 168contextArg = ilg.GetArg(2); 169dataContractArg = ilg.GetArg(3); 171objectLocal = ilg.DeclareLocal(objType, "objSerialized"); 172ArgBuilder objectArg = ilg.GetArg(1); 173ilg.Load(objectArg); 181ilg.ConvertValue(objectArg.ArgType, Globals.TypeOfDateTimeOffset); 182ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetAdapterMethod); 186ilg.ConvertValue(objectArg.ArgType, objType); 188ilg.Stloc(objectLocal); 196ilg.Call(contextArg, XmlFormatGeneratorStatics.DemandMemberAccessPermissionMethod); 204ilg.Call(contextArg, XmlFormatGeneratorStatics.DemandSerializationFormatterPermissionMethod); 220ilg.Load(contextArg); 221ilg.LoadMember(XmlFormatGeneratorStatics.SerializeReadOnlyTypesProperty); 222ilg.IfNot(); 223ilg.Load(dataContractArg); 224ilg.LoadMember(serializationExceptionMessageProperty); 225ilg.Load(null); 226ilg.Call(XmlFormatGeneratorStatics.ThrowInvalidDataContractExceptionMethod); 227ilg.EndIf(); 236ilg.LoadAddress(objectLocal); 237ilg.Load(contextArg); 238ilg.Call(XmlFormatGeneratorStatics.GetStreamingContextMethod); 239ilg.Call(classContract.OnSerializing); 249ilg.LoadAddress(objectLocal); 250ilg.Load(contextArg); 251ilg.Call(XmlFormatGeneratorStatics.GetStreamingContextMethod); 252ilg.Call(classContract.OnSerialized); 262ilg.Call(contextArg, JsonFormatGeneratorStatics.WriteJsonISerializableMethod, xmlWriterArg, objectLocal); 268LocalBuilder extensionDataLocal = ilg.DeclareLocal(Globals.TypeOfExtensionDataObject, "extensionData"); 269ilg.Load(objectLocal); 270ilg.ConvertValue(objectLocal.LocalType, Globals.TypeOfIExtensibleDataObject); 271ilg.LoadMember(JsonFormatGeneratorStatics.ExtensionDataProperty); 272ilg.Store(extensionDataLocal); 273ilg.Call(contextArg, XmlFormatGeneratorStatics.WriteExtensionDataMethod, xmlWriterArg, extensionDataLocal, -1); 287ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, classContract.Members.Count); 296ilg.Load(contextArg); 297ilg.Call(XmlFormatGeneratorStatics.StoreIsGetOnlyCollectionMethod); 302ilg.IfNotDefaultValue(memberValue); 312ilg.Call(null, JsonFormatGeneratorStatics.WriteJsonNameWithMappingMethod, xmlWriterArg, memberNamesArg, i + childElementIndex); 324ilg.Call(contextArg, XmlFormatGeneratorStatics.WriteExtensionDataMethod, xmlWriterArg, extensionDataLocal, memberCount); 329ilg.Else(); 330ilg.Call(null, XmlFormatGeneratorStatics.ThrowRequiredMemberMustBeEmittedMethod, member.Name, classContract.UnderlyingType); 332ilg.EndIf(); 343ilg.LoadAddress(objectLocal); 344ilg.LoadMember(member.MemberInfo); 345LocalBuilder memberValue = ilg.DeclareLocal(member.MemberType, member.Name + "Value"); 346ilg.Stloc(memberValue); 352LocalBuilder itemName = ilg.DeclareLocal(typeof(XmlDictionaryString), "itemName"); 353ilg.Load(contextArg); 354ilg.LoadMember(JsonFormatGeneratorStatics.CollectionItemNameProperty); 355ilg.Store(itemName); 360LocalBuilder i = ilg.DeclareLocal(Globals.TypeOfInt, "i"); 362ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementArrayCountMethod, xmlWriterArg, objectLocal); 367ilg.For(i, 0, objectLocal); 371ilg.LoadArrayElement(objectLocal, i); 372LocalBuilder memberValue = ilg.DeclareLocal(itemType, "memberValue"); 373ilg.Stloc(memberValue); 377ilg.EndFor(); 400ilg.Call(contextArg, incrementCollectionCountMethod, xmlWriterArg, objectLocal); 458LocalBuilder currentValue = ilg.DeclareLocal(elementType, "currentValue"); 460LocalBuilder enumerator = ilg.DeclareLocal(enumeratorType, "enumerator"); 461ilg.Call(objectLocal, collectionContract.GetEnumeratorMethod); 465ilg.ConvertValue(collectionContract.GetEnumeratorMethod.ReturnType, Globals.TypeOfIDictionaryEnumerator); 466ilg.New(dictEnumCtor); 472ilg.ConvertValue(collectionContract.GetEnumeratorMethod.ReturnType, ctorParam); 473ilg.New(dictEnumCtor); 475ilg.Stloc(enumerator); 484ilg.Load(contextArg); 485ilg.LoadMember(JsonFormatGeneratorStatics.UseSimpleDictionaryFormatWriteProperty); 486ilg.If(); 488LocalBuilder pairKey = ilg.DeclareLocal(Globals.TypeOfString, "key"); 489LocalBuilder pairValue = ilg.DeclareLocal(keyValueTypes[1], "value"); 490ilg.ForEach(currentValue, elementType, enumeratorType, enumerator, getCurrentMethod); 492ilg.LoadAddress(currentValue); 493ilg.LoadMember(genericDictionaryKeyProperty); 494ilg.ToString(keyValueTypes[0]); 495ilg.Stloc(pairKey); 497ilg.LoadAddress(currentValue); 498ilg.LoadMember(genericDictionaryValueProperty); 499ilg.Stloc(pairValue); 505ilg.EndForEach(moveNextMethod); 506ilg.Else(); 511ilg.ForEach(currentValue, elementType, enumeratorType, enumerator, getCurrentMethod); 514ilg.Call(contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 522ilg.Call(dataContractArg, JsonFormatGeneratorStatics.GetItemContractMethod); 523ilg.Call(JsonFormatGeneratorStatics.GetRevisedItemContractMethod); 524ilg.Call(JsonFormatGeneratorStatics.GetJsonDataContractMethod); 525ilg.Load(xmlWriterArg); 526ilg.Load(currentValue); 527ilg.ConvertValue(currentValue.LocalType, Globals.TypeOfObject); 528ilg.Load(contextArg); 529ilg.Load(currentValue.LocalType); 530ilg.LoadMember(JsonFormatGeneratorStatics.TypeHandleProperty); 531ilg.Call(JsonFormatGeneratorStatics.WriteJsonValueMethod); 539ilg.EndForEach(moveNextMethod); 543ilg.EndIf(); 557ilg.Load(xmlWriterArg); 561ilg.Load(contextArg); 562ilg.Load(xmlWriterArg); 567ilg.Load(value); 571ilg.LoadAddress(objectLocal); 572ilg.LoadMember(memberInfo); 576ilg.LoadArrayElement(objectLocal, arrayItemIndex); 581ilg.Load(name); 585ilg.LoadArrayElement(memberNamesArg, nameIndex); 588ilg.Load(null); 590ilg.Call(primitiveContract.XmlFormatWriterMethod); 630ilg.Call(xmlWriterArg, typeof(JsonWriterDelegator).GetMethod(writeArrayMethod, Globals.ScanAllMembers, null, new Type[] { type, typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null), value, itemName, null); 638ilg.Call(xmlWriterArg, JsonFormatGeneratorStatics.WriteAttributeStringMethod, 647ilg.Call(xmlWriterArg, JsonFormatGeneratorStatics.WriteAttributeStringMethod, 659ilg.Load(memberValue); 660ilg.Load(memberType); 661ilg.Call(JsonFormatGeneratorStatics.BoxPointer); 663memberValue = ilg.DeclareLocal(memberType, "memberValueRefPointer"); 664ilg.Store(memberValue); 672ilg.Call(xmlWriterArg, primitiveContract.XmlFormatContentWriterMethod, memberValue); 685ilg.Load(memberValue); 686ilg.Load(null); 687ilg.Ceq(); 689ilg.If(); 690ilg.Call(contextArg, XmlFormatGeneratorStatics.WriteNullMethod, xmlWriterArg, memberType, DataContract.IsTypeSerializable(memberType)); 691ilg.Else(); 697ilg.Call(xmlWriterArg, primitiveContract.XmlFormatContentWriterMethod, memberValue); 701ilg.Call(contextArg, primitiveContract.XmlFormatContentWriterMethod, xmlWriterArg, memberValue); 710ilg.Load(memberValue); 711ilg.ConvertValue(memberValue.LocalType, Globals.TypeOfObject); 712memberValue = ilg.DeclareLocal(Globals.TypeOfObject, "unwrappedMemberValue"); 714ilg.Stloc(memberValue); 715ilg.If(memberValue, Cmp.EqualTo, null); 716ilg.Call(contextArg, XmlFormatGeneratorStatics.WriteNullMethod, xmlWriterArg, memberType, DataContract.IsTypeSerializable(memberType)); 717ilg.Else(); 723ilg.EndIf(); 725ilg.EndIf(); 731ilg.Load(contextArg); 732ilg.Load(xmlWriterArg); 733ilg.Load(memberValue); 734ilg.ConvertValue(memberValue.LocalType, Globals.TypeOfObject); 735LocalBuilder typeHandleValue = ilg.DeclareLocal(typeof(RuntimeTypeHandle), "typeHandleValue"); 736ilg.Call(null, typeof(Type).GetMethod("GetTypeHandle"), memberValue); 737ilg.Stloc(typeHandleValue); 738ilg.LoadAddress(typeHandleValue); 739ilg.Ldtoken(memberType); 740ilg.Call(typeof(RuntimeTypeHandle).GetMethod("Equals", new Type[] { typeof(RuntimeTypeHandle) })); 741ilg.Load(writeXsiType); 742ilg.Load(DataContract.GetId(memberType.TypeHandle)); 743ilg.Ldtoken(memberType); 744ilg.Call(methodInfo); 750Label onNull = ilg.DefineLabel(); 751Label end = ilg.DefineLabel(); 752ilg.Load(memberValue); 756ilg.Dup(); 757ilg.Call(XmlFormatGeneratorStatics.GetHasValueMethod.MakeGenericMethod(innerType)); 758ilg.Brfalse(onNull); 759ilg.Call(XmlFormatGeneratorStatics.GetNullableValueMethod.MakeGenericMethod(innerType)); 762memberValue = ilg.DeclareLocal(memberType, "nullableUnwrappedMemberValue"); 763ilg.Stloc(memberValue); 764ilg.Load(false); //isNull 765ilg.Br(end); 766ilg.MarkLabel(onNull); 767ilg.Pop(); 768ilg.Call(XmlFormatGeneratorStatics.GetDefaultValueMethod.MakeGenericMethod(memberType)); 769ilg.Stloc(memberValue); 770ilg.Load(true); //isNull 771ilg.MarkLabel(end); 777ilg.Load(xmlWriterArg); 781ilg.LoadArrayElement(memberNamesArg, nameIndex); 783ilg.Load(nameLocal); 786ilg.Load(null); 790ilg.Call(JsonFormatGeneratorStatics.WriteStartElementStringMethod); 794ilg.Call(JsonFormatGeneratorStatics.WriteStartElementMethod); 800ilg.Call(xmlWriterArg, JsonFormatGeneratorStatics.WriteEndElementMethod);