15 writes to ilg
dotnet-svcutil-lib (15)
FrameworkFork\Microsoft.Xml\Xml\Serialization\XmlSerializationILGen.cs (10)
147ilg = new CodeGenerator(serializerContractTypeBuilder); 227ilg = new CodeGenerator(serializerContractTypeBuilder); 277ilg = new CodeGenerator(baseSerializerTypeBuilder); 317ilg = new CodeGenerator(typedSerializerTypeBuilder); 354ilg = new CodeGenerator(typedSerializerTypeBuilder); 380ilg = new CodeGenerator(typedSerializerTypeBuilder); 434ilg = new CodeGenerator(serializerContractTypeBuilder); 486ilg = new CodeGenerator(serializerContractTypeBuilder); 505ilg = new CodeGenerator(serializerContractTypeBuilder); 533ilg = new CodeGenerator(serializerContractTypeBuilder);
FrameworkFork\Microsoft.Xml\Xml\Serialization\XmlSerializationWriterILGen.cs (5)
86ilg = new CodeGenerator(this.typeBuilder); 362ilg = new CodeGenerator(this.typeBuilder); 559ilg = new CodeGenerator(this.typeBuilder); 619ilg = new CodeGenerator(this.typeBuilder); 955ilg = new CodeGenerator(this.typeBuilder);
714 references to ilg
dotnet-svcutil-lib (714)
FrameworkFork\Microsoft.Xml\Xml\Serialization\XmlSerializationILGen.cs (123)
155ilg.BeginMethod( 161propertyBuilder.SetGetMethod(ilg.MethodBuilder); 163ilg.Ldarg(0); 164ilg.LoadMember(fieldBuilder); 165ilg.Load(null); 167ilg.If(Cmp.EqualTo); 171LocalBuilder _tmpLoc = ilg.DeclareLocal(typeof(Hashtable), "_tmp"); 172ilg.New(Hashtable_ctor); 173ilg.Stloc(_tmpLoc); 180ilg.Ldarg(0); 181ilg.LoadMember(fieldBuilder); 182ilg.Load(null); 183ilg.If(Cmp.EqualTo); 185ilg.Ldarg(0); 186ilg.Ldloc(typeof(Hashtable), "_tmp"); 187ilg.StoreMember(fieldBuilder); 189ilg.EndIf(); 191ilg.EndIf(); 193ilg.Ldarg(0); 194ilg.LoadMember(fieldBuilder); 195ilg.GotoMethodEnd(); 197ilg.EndMethod(); 215ilg.Ldloc(typeof(Hashtable), "_tmp"); 216ilg.Ldstr(xmlMappings[i].Key); 217ilg.Ldstr(methods[i]); 218ilg.Call(Hashtable_set_Item); 228ilg.BeginMethod( 249ilg.Ldarg("type"); 250ilg.Ldc(type); 251ilg.If(Cmp.EqualTo); 253ilg.Ldc(true); 254ilg.GotoMethodEnd(); 256ilg.EndIf(); 258ilg.Ldc(false); 259ilg.GotoMethodEnd(); 260ilg.EndMethod(); 278ilg.BeginMethod(typeof(XmlSerializationReader), 283ilg.New(readerCtor); 284ilg.EndMethod(); 288ilg.BeginMethod(typeof(XmlSerializationWriter), 293ilg.New(writerCtor); 294ilg.EndMethod(); 318ilg.BeginMethod( 328ilg.Ldc(true); 329ilg.Stloc(ilg.ReturnLocal); 330ilg.Br(ilg.ReturnLabel); 341ilg.Ldarg(ilg.GetArg("xmlReader")); 342ilg.Ldstr(mapping.Accessor.Name); 343ilg.Ldstr(mapping.Accessor.Namespace); 344ilg.Call(XmlReader_IsStartElement); 345ilg.Stloc(ilg.ReturnLocal); 346ilg.Br(ilg.ReturnLabel); 348ilg.MarkLabel(ilg.ReturnLabel); 349ilg.Ldloc(ilg.ReturnLocal); 350ilg.EndMethod(); 355ilg.BeginMethod( 368ilg.Ldarg("writer"); 369ilg.Castclass(CreatedTypes[writerClass]); 370ilg.Ldarg("objectToSerialize"); 373ilg.ConvertValue(typeof(object), typeof(object[])); 375ilg.Call(writerType_writeMethod); 376ilg.EndMethod(); 381ilg.BeginMethod( 394ilg.Ldarg("reader"); 395ilg.Castclass(CreatedTypes[readerClass]); 396ilg.Call(readerType_readMethod); 397ilg.EndMethod(); 422ilg.Ldloc(typeof(Hashtable), "_tmp"); 423ilg.Ldstr(key); 424ilg.New(ctor); 425ilg.Call(Hashtable_Add); 435ilg.BeginMethod( 455ilg.Ldarg("type"); 456ilg.Ldc(type); 457ilg.If(Cmp.EqualTo); 461ilg.New(ctor); 462ilg.Stloc(ilg.ReturnLocal); 463ilg.Br(ilg.ReturnLabel); 465ilg.EndIf(); 468ilg.Load(null); 469ilg.Stloc(ilg.ReturnLocal); 470ilg.Br(ilg.ReturnLabel); 471ilg.MarkLabel(ilg.ReturnLabel); 472ilg.Ldloc(ilg.ReturnLocal); 473ilg.EndMethod(); 493ilg.BeginMethod( 499propertyBuilder.SetGetMethod(ilg.MethodBuilder); 502ilg.New(ctor); 503ilg.EndMethod(); 512ilg.BeginMethod( 518propertyBuilder.SetGetMethod(ilg.MethodBuilder); 521ilg.New(ctor); 522ilg.EndMethod(); 534ilg.BeginMethod( 541ilg.Ldarg(0); 542ilg.Load(null); 543ilg.StoreMember(readMethodsField); 544ilg.Ldarg(0); 545ilg.Load(null); 546ilg.StoreMember(writeMethodsField); 547ilg.Ldarg(0); 548ilg.Load(null); 549ilg.StoreMember(typedSerializersField); 550ilg.Ldarg(0); 551ilg.Call(baseCtor); 552ilg.EndMethod(); 574ilg.LoadMember(ilg.GetVariable("o"), memInfo); 578ilg.ConvertValue(memType, type); 583SourceInfo info = new SourceInfo(source, null, null, null, ilg);
FrameworkFork\Microsoft.Xml\Xml\Serialization\XmlSerializationWriterILGen.cs (591)
87ilg.BeginMethod(typeof(void), "InitCallbacks", CodeGenerator.EmptyTypeArray, CodeGenerator.EmptyStringArray, 89ilg.EndMethod(); 100ilg.Ldarg(0); 101ilg.Ldstr(name); 105ilg.Ldstr(ns); 118ilg.Call(XmlSerializationWriter_WriteXXX); 142ilg.Ldarg(0); 144ilg.Call(methodBuilder); 168ilg.Call(XmlConvert_ToString); 178ilg.Ldarg(0); 188ilg.Call(FromXXX); 225ilg.Ldc(Enum.Parse(mapping.TypeDesc.Type, enumDefaultValue, false)); 226ilg.If(Cmp.NotEqualTo); // " != " 234ilg.Ldarg(0); 236ilg.Ldstr(name); 240ilg.Ldstr(ns); 260ilg.Ldstr(mapping.TypeName); 261ilg.Ldstr(mapping.Namespace); 262ilg.New(XmlQualifiedName_ctor); 272ilg.Call(XmlSerializationWriter_method); 276ilg.EndIf(); 289ilg.Ldarg(0); 290ilg.Ldstr(name); 291ilg.Ldstr(ns); 292ilg.Call(XmlSerializationWriter_Method); 304ilg.Ldarg(0); 305ilg.Ldstr(name); 306ilg.Ldstr(ns); 307ilg.Load(null); 308ilg.Ldc(writePrefixed); 309ilg.Call(XmlSerializationWriter_Method); 326ilg.Ldarg(0); 327ilg.Call(XmlSerializationWriter_WriteEndElement); 338object oVar = ilg.GetVariable(source); 339ilg.Ldarg(0); 340ilg.Load(oVar); 341ilg.ConvertValue(ilg.GetVariableType(oVar), typeof(Object)); 342ilg.Call(XmlSerializationWriter_WriteEndElement); 363ilg.BeginMethod( 378ilg.Ldarg(0); 379ilg.Call(XmlSerializationWriter_WriteStartDocument); 388ilg.Ldarg(0); 389ilg.Call(XmlSerializationWriter_TopLevelElement); 394LocalBuilder pLengthLoc = ilg.DeclareLocal(typeof(int), "pLength"); 395ilg.Ldarg("p"); 396ilg.Ldlen(); 397ilg.Stloc(pLengthLoc); 409ilg.Ldloc(pLengthLoc); 410ilg.Ldc(xmlnsMember); 411ilg.If(Cmp.GreaterThan); 413ilg.EndIf(); 422SourceInfo source = new SourceInfo("p[" + i.ToString() + "]", null, null, pLengthLoc.LocalType.GetElementType(), ilg); 433specifiedSource = new SourceInfo("((bool)p[" + j.ToString() + "])", null, null, typeof(bool), ilg); 440ilg.Ldloc(pLengthLoc); 441ilg.Ldc(i); 442ilg.If(Cmp.GreaterThan); 446Label labelTrue = ilg.DefineLabel(); 447Label labelEnd = ilg.DefineLabel(); 448ilg.Ldloc(pLengthLoc); 449ilg.Ldc(specifiedPosition); 450ilg.Ble(labelTrue); 452ilg.Br_S(labelEnd); 453ilg.MarkLabel(labelTrue); 454ilg.Ldc(true); 455ilg.MarkLabel(labelEnd); 456ilg.If(); 463ilg.EndIf(); 466ilg.EndIf(); 489specifiedSource = new SourceInfo("((bool)p[" + j.ToString() + "])", null, null, typeof(bool), ilg); 496ilg.Ldloc(pLengthLoc); 497ilg.Ldc(i); 498ilg.If(Cmp.GreaterThan); 502Label labelTrue = ilg.DefineLabel(); 503Label labelEnd = ilg.DefineLabel(); 504ilg.Ldloc(pLengthLoc); 505ilg.Ldc(specifiedPosition); 506ilg.Ble(labelTrue); 508ilg.Br_S(labelEnd); 509ilg.MarkLabel(labelTrue); 510ilg.Ldc(true); 511ilg.MarkLabel(labelEnd); 512ilg.If(); 536WriteMember(new SourceInfo(source, source, null, null, ilg), enumSource, member.ElementsSortedByDerivation, member.Text, member.ChoiceIdentifier, member.TypeDesc, writeAccessors || hasWrapperElement); 540ilg.EndIf(); 543ilg.EndIf(); 550ilg.EndMethod(); 560ilg.BeginMethod( 575ilg.Ldarg(0); 576ilg.Call(XmlSerializationWriter_WriteStartDocument); 578ilg.If(ilg.GetArg("o"), Cmp.EqualTo, null); 585ilg.GotoMethodEnd(); 586ilg.EndIf(); 597ilg.Ldarg(0); 598ilg.Call(XmlSerializationWriter_TopLevelElement); 601WriteMember(new SourceInfo("o", "o", null, typeof(object), ilg), null, new ElementAccessor[] { element }, null, null, mapping.TypeDesc, true); 603ilg.EndMethod(); 620ilg.BeginMethod( 626LocalBuilder sLoc = ilg.DeclareLocal(typeof(string), "s"); 627ilg.Load(null); 628ilg.Stloc(sLoc); 636Label defaultLabel = ilg.DefineLabel(); 637Label endSwitchLabel = ilg.DefineLabel(); 639LocalBuilder localTmp = ilg.DeclareLocal(mapping.TypeDesc.Type, "localTmp"); 640ilg.Ldarg("v"); 641ilg.Stloc(localTmp); 647Label caseLabel = ilg.DefineLabel(); 648ilg.Ldloc(localTmp); 649ilg.Ldc(Enum.ToObject(mapping.TypeDesc.Type, c.Value)); 650ilg.Beq(caseLabel); 660ilg.Br(defaultLabel); 663ilg.MarkLabel(caseLabels[i]); 664ilg.Ldc(retValues[i]); 665ilg.Stloc(sLoc); 666ilg.Br(endSwitchLabel); 668ilg.MarkLabel(defaultLabel); 669RaCodeGen.ILGenForEnumLongValue(ilg, "v"); 670LocalBuilder strArray = ilg.DeclareLocal(typeof(String[]), "strArray"); 671ilg.NewArray(typeof(String), constants.Length); 672ilg.Stloc(strArray); 676ilg.Ldloc(strArray); 677ilg.Ldc(i); 678ilg.Ldstr(c.XmlName); 679ilg.Stelem(typeof(String)); 681ilg.Ldloc(strArray); 682LocalBuilder longArray = ilg.DeclareLocal(typeof(long[]), "longArray"); 683ilg.NewArray(typeof(long), constants.Length); 684ilg.Stloc(longArray); 689ilg.Ldloc(longArray); 690ilg.Ldc(i); 691ilg.Ldc(c.Value); 692ilg.Stelem(typeof(long)); 694ilg.Ldloc(longArray); 695ilg.Ldstr(mapping.TypeDesc.FullName); 703ilg.Call(XmlSerializationWriter_FromEnum); 704ilg.Stloc(sLoc); 705ilg.Br(endSwitchLabel); 709ilg.Br(defaultLabel); 713ilg.MarkLabel(caseLabels[i]); 714ilg.Ldc(retValues[i]); 715ilg.Stloc(sLoc); 716ilg.Br(endSwitchLabel); 740ilg.MarkLabel(defaultLabel); 741ilg.Ldarg(0); 742ilg.Ldarg("v"); 743ilg.ConvertValue(mapping.TypeDesc.Type, typeof(Int64)); 744LocalBuilder numLoc = ilg.DeclareLocal(typeof(Int64), "num"); 745ilg.Stloc(numLoc); 747ilg.LdlocAddress(numLoc); 748ilg.Call(CultureInfo_get_InvariantCulture); 749ilg.Call(Int64_ToString); 750ilg.Ldstr(mapping.TypeDesc.FullName); 751ilg.Call(XmlSerializationWriter_CreateInvalidEnumValueException); 752ilg.Throw(); 754ilg.MarkLabel(endSwitchLabel); 756ilg.Ldloc(sLoc); 757ilg.EndMethod(); 764ilg.InitElseIf(); 766ilg.AndIf(); 776ilg.Ldarg(0); 778ilg.Ldarg("n"); 780ilg.Ldarg("ns"); 781object oVar = ilg.GetVariable("o"); 782Type oType = ilg.GetVariableType(oVar); 783ilg.Load(oVar); 784ilg.ConvertValue(oType, derived.TypeDesc.Type); 789ilg.Ldarg("isNullable"); 792ilg.Ldc(true); 798ilg.Call(methodBuilder); 799ilg.GotoMethodEnd(); 814ilg.InitElseIf(); 817ilg.AndIf(); 839ilg.Ldarg(0); 840ilg.Call(XmlSerializationWriter_get_Writer); 841ilg.Ldarg("n"); 842ilg.Ldarg("ns"); 843ilg.Call(XmlWriter_WriteStartElement); 851ilg.Ldarg(0); 852ilg.Ldstr(mapping.TypeName); 853ilg.Ldstr(mapping.Namespace); 854ilg.Call(XmlSerializationWriter_WriteXsiType); 868ilg.Ldarg(0); 869ilg.Call(XmlSerializationWriter_get_Writer); 870object oVar = ilg.GetVariable("o"); 871ilg.Ldarg(0); 872ilg.Load(oVar); 873ilg.ConvertValue(ilg.GetVariableType(oVar), mapping.TypeDesc.Type); 874ilg.Call(methodBuilder); 875ilg.Call(XmlWriter_WriteString); 883ilg.Ldarg(0); 884ilg.Call(XmlSerializationWriter_get_Writer); 885ilg.Call(XmlWriter_WriteEndElement); 886ilg.GotoMethodEnd(); 892ilg.InitElseIf(); 898ilg.AndIf(); 899ilg.EnterScope(); 915ilg.Ldarg(0); 916ilg.Call(XmlSerializationWriter_get_Writer); 917ilg.Ldarg("n"); 918ilg.Ldarg("ns"); 919ilg.Call(XmlWriter_WriteStartElement); 927ilg.Ldarg(0); 928ilg.Ldstr(mapping.TypeName); 929ilg.Ldstr(mapping.Namespace); 930ilg.Call(XmlSerializationWriter_WriteXsiType); 932WriteMember(new SourceInfo("o", "o", null, null, ilg), null, mapping.ElementsSortedByDerivation, null, null, mapping.TypeDesc, true); 941ilg.Ldarg(0); 942ilg.Call(XmlSerializationWriter_get_Writer); 943ilg.Call(XmlWriter_WriteEndElement); 944ilg.GotoMethodEnd(); 945ilg.ExitScope(); 971ilg.BeginMethod(typeof(void), 978ilg.If(ilg.GetArg("o"), Cmp.EqualTo, null); 980ilg.If(ilg.GetArg("isNullable"), Cmp.EqualTo, true); 989ilg.Ldarg(0); 990ilg.Ldarg("n"); 991ilg.Ldarg("ns"); 992ilg.Call(XmlSerializationWriter_WriteNullTagLiteral); 994ilg.EndIf(); 995ilg.GotoMethodEnd(); 997ilg.EndIf(); 999ilg.If(ilg.GetArg("needType"), Cmp.NotEqualTo, true); // if (!needType) 1001LocalBuilder tLoc = ilg.DeclareLocal(typeof(Type), "t"); 1009ArgBuilder oArg = ilg.GetArg("o"); 1010ilg.LdargAddress(oArg); 1011ilg.ConvertAddress(oArg.ArgType, typeof(object)); 1012ilg.Call(Object_GetType); 1013ilg.Stloc(tLoc); 1016ilg.If(); // if (t == typeof(...)) 1020ilg.Else(); 1030ilg.Ldarg(0); 1031ilg.Ldarg("n"); 1032ilg.Ldarg("ns"); 1033ilg.Ldarg("o"); 1034ilg.Ldc(true); 1035ilg.Call(XmlSerializationWriter_WriteTypedPrimitive); 1036ilg.GotoMethodEnd(); 1047ilg.Ldarg(0); 1048ilg.Ldarg(oArg); 1049ilg.ConvertValue(oArg.ArgType, typeof(Object)); 1050ilg.Call(XmlSerializationWriter_CreateUnknownTypeException); 1051ilg.Throw(); 1053ilg.EndIf(); // if (t == typeof(...)) 1054ilg.EndIf(); // if (!needType) 1067ilg.Ldarg(0); 1068ilg.Ldc(false); 1069ilg.Call(XmlSerializationWriter_set_EscapeName); 1082ilg.Ldarg(0); 1083ilg.Ldarg("n"); 1084ilg.Ldarg("ns"); 1085ArgBuilder argO = ilg.GetArg("o"); 1086ilg.Ldarg(argO); 1087ilg.ConvertValue(argO.ArgType, typeof(Object)); 1088ilg.Ldc(false); 1090ilg.Load(null); 1104ilg.Call(XmlSerializationWriter_WriteStartElement); 1107ilg.If(ilg.GetArg("needType"), Cmp.EqualTo, true); 1116ilg.Ldarg(0); 1117ilg.Ldstr(mapping.TypeName); 1118ilg.Ldstr(mapping.Namespace); 1119ilg.Call(XmlSerializationWriter_WriteXsiType); 1121ilg.EndIf(); 1131ilg.LdargAddress(oArg); 1132ilg.Call(m.CheckShouldPersistMethodInfo); 1133ilg.If(); 1139ilg.If(); 1141WriteMember(RaCodeGen.GetSourceForMember("o", m, mapping.TypeDesc, ilg), m.Attribute, m.TypeDesc, "o"); 1145ilg.EndIf(); 1149ilg.EndIf(); 1164ilg.LdargAddress(oArg); 1165ilg.Call(m.CheckShouldPersistMethodInfo); 1166ilg.If(); 1172ilg.If(); 1182WriteMember(RaCodeGen.GetSourceForMember("o", m, m.MemberInfo, mapping.TypeDesc, ilg), choiceSource, m.ElementsSortedByDerivation, m.Text, m.ChoiceIdentifier, m.TypeDesc, true); 1187ilg.EndIf(); 1191ilg.EndIf(); 1196ilg.EndMethod(); 1220ilg.Ldloc(memberTypeDesc.Type, aVar); 1221ilg.Load(null); 1222ilg.If(Cmp.NotEqualTo); 1243ilg.Ldarg(0); 1244ilg.Call(XmlSerializationWriter_get_Writer); 1245ilg.Load(null); 1246ilg.Ldstr(attribute.Name); 1247ilg.Ldstr(ns); 1248ilg.Call(XmlWriter_WriteStartAttribute); 1252LocalBuilder sbLoc = ilg.DeclareOrGetLocal(typeof(StringBuilder), "sb"); 1255ilg.New(StringBuilder_ctor); 1256ilg.Stloc(sbLoc); 1269LocalBuilder localI = ilg.DeclareOrGetLocal(typeof(Int32), iVar); 1270ilg.For(localI, 0, ilg.GetLocal(aVar)); 1274LocalBuilder localI = ilg.DeclareOrGetLocal(typeof(Int32), iVar); 1275ilg.For(localI, 0, ilg.GetLocal(aVar)); 1287ilg.Ldloc(iVar); 1288ilg.Ldc(0); 1289ilg.If(Cmp.NotEqualTo); 1304ilg.Ldarg(0); 1305ilg.Call(XmlSerializationWriter_get_Writer); 1306ilg.Ldstr(" "); 1307ilg.Call(XmlWriter_WriteString); 1308ilg.EndIf(); 1309ilg.Ldarg(0); 1322ilg.Ldloc(iVar); 1323ilg.Ldc(0); 1324ilg.If(Cmp.NotEqualTo); 1325ilg.Ldloc("sb"); 1326ilg.Ldstr(" "); 1327ilg.Call(StringBuilder_Append); 1328ilg.Pop(); 1329ilg.EndIf(); 1330ilg.Ldloc("sb"); 1335WriteEnumValue((EnumMapping)attribute.Mapping, new SourceInfo(aiVar, aiVar, null, arrayElementTypeDesc.Type, ilg), out argType); 1337WritePrimitiveValue(arrayElementTypeDesc, new SourceInfo(aiVar, aiVar, null, arrayElementTypeDesc.Type, ilg), out argType); 1345ilg.Call(method); 1347ilg.Pop(); 1351WriteAttribute(new SourceInfo(aiVar, aiVar, null, null, ilg), attribute, parent); 1356ilg.EndFor(); 1376ilg.Ldarg(0); 1377ilg.Call(XmlSerializationWriter_get_Writer); 1378ilg.Call(XmlWriter_WriteEndAttribute); 1389ilg.Ldloc("sb"); 1390ilg.Call(StringBuilder_get_Length); 1391ilg.Ldc(0); 1392ilg.If(Cmp.NotEqualTo); 1395ilg.Ldarg(0); 1396ilg.Ldstr(attribute.Name); 1401ilg.Ldstr(ns); 1411ilg.Ldloc("sb"); 1412ilg.Call(Object_ToString); 1421ilg.Call(XmlSerializationWriter_WriteAttribute); 1422ilg.EndIf(); 1428ilg.EndIf(); 1452ilg.Ldarg(0); 1453ilg.Ldloc(source.Source); 1454ilg.Ldarg(parent); 1455ilg.ConvertValue(ilg.GetArg(parent).ArgType, typeof(Object)); 1456ilg.Call(XmlSerializationWriter_WriteXmlAttribute); 1502LocalBuilder aLoc = ilg.GetLocal(aName); 1505ilg.Ldloc(aLoc); 1506ilg.Load(null); 1507ilg.If(Cmp.NotEqualTo); 1514SourceInfo choiceSourceInfo = new SourceInfo(choiceSource, null, choice.MemberInfo, null, ilg); 1518Label labelEnd = ilg.DefineLabel(); 1519Label labelTrue = ilg.DefineLabel(); 1520LocalBuilder cLoc = ilg.GetLocal(cName); 1521ilg.Ldloc(cLoc); 1522ilg.Load(null); 1523ilg.Beq(labelTrue); 1524ilg.Ldloc(cLoc); 1525ilg.Ldlen(); 1526ilg.Ldloc(aLoc); 1527ilg.Ldlen(); 1528ilg.Clt(); 1529ilg.Br(labelEnd); 1530ilg.MarkLabel(labelTrue); 1531ilg.Ldc(true); 1532ilg.MarkLabel(labelEnd); 1533ilg.If(); 1541ilg.Ldarg(0); 1542ilg.Ldstr(choice.Mapping.TypeDesc.FullName); 1543ilg.Ldstr(choice.MemberName); 1544ilg.Call(XmlSerializationWriter_CreateInvalidChoiceIdentifierValueException); 1545ilg.Throw(); 1546ilg.EndIf(); 1552ilg.EndIf(); 1566LocalBuilder eLoc = ilg.DeclareLocal(typeof(IEnumerator), "e"); 1577ilg.LoadAddress(ilg.GetVariable(arrayName)); 1581ilg.Load(ilg.GetVariable(arrayName)); 1591ilg.ConvertValue(arrayTypeDesc.Type, typeIEnumerable); 1594ilg.Call(getEnumeratorMethod); 1595ilg.ConvertValue(getEnumeratorMethod.ReturnType, typeof(IEnumerator)); 1596ilg.Stloc(eLoc); 1598ilg.Ldloc(eLoc); 1599ilg.Load(null); 1600ilg.If(Cmp.NotEqualTo); 1601ilg.WhileBegin(); 1605WriteElements(new SourceInfo(arrayNamePlusI, null, null, arrayElementTypeDesc.Type, ilg), choiceName + "i", elements, text, choice, arrayNamePlusA, true, true); 1607ilg.WhileBeginCondition(); // while (e.MoveNext()) 1615ilg.Ldloc(eLoc); 1616ilg.Call(IEnumerator_MoveNext); 1617ilg.WhileEndCondition(); 1618ilg.WhileEnd(); 1620ilg.EndIf(); // if (e != null) 1628LocalBuilder localI = ilg.DeclareOrGetLocal(typeof(Int32), iPlusArrayName); 1629ilg.For(localI, 0, ilg.GetLocal(arrayName)); 1638WriteElements(new SourceInfo(arrayNamePlusI, null, null, arrayElementTypeDesc.Type, ilg), choiceName + "i", elements, text, choice, arrayNamePlusA, true, arrayElementTypeDesc.IsNullable); 1642WriteElements(new SourceInfo(RaCodeGen.GetStringForArrayMember(arrayName, iPlusArrayName, arrayTypeDesc), null, null, arrayElementTypeDesc.Type, ilg), null, elements, text, choice, arrayNamePlusA, true, arrayElementTypeDesc.IsNullable); 1644ilg.EndFor(); 1664ilg.Load(null); 1665ilg.If(Cmp.NotEqualTo); 1692if (wroteFirstIf) ilg.InitElseIf(); 1693else { wroteFirstIf = true; ilg.InitIf(); } 1695ilg.Load(enumValue); 1696ilg.Ceq(); 1699Label labelFalse = ilg.DefineLabel(); 1700Label labelEnd = ilg.DefineLabel(); 1701ilg.Brfalse(labelFalse); 1703ilg.Load(null); 1704ilg.Cne(); 1705ilg.Br_S(labelEnd); 1706ilg.MarkLabel(labelFalse); 1707ilg.Ldc(false); 1708ilg.MarkLabel(labelEnd); 1710ilg.AndIf(); 1722if (wroteFirstIf) ilg.InitElseIf(); 1723else { wroteFirstIf = true; ilg.InitIf(); } 1726ilg.AndIf(); 1740else ilg.EndIf(); 1745if (elements.Length - anyCount > 0) ilg.InitElseIf(); 1746else ilg.InitIf(); 1751ilg.IsInst(typeof(XmlElement)); 1752ilg.Load(null); 1753ilg.Cne(); 1754ilg.AndIf(); 1756LocalBuilder elemLoc = ilg.DeclareLocal(typeof(XmlElement), "elem"); 1758ilg.Stloc(elemLoc); 1764if (c++ > 0) ilg.InitElseIf(); 1765else ilg.InitIf(); 1774labelFalse = ilg.DefineLabel(); 1775labelEnd = ilg.DefineLabel(); 1777ilg.Load(enumValue); 1778ilg.Bne(labelFalse); 1782ilg.Load(null); 1783ilg.Cne(); 1787ilg.Ldc(true); 1789ilg.Br(labelEnd); 1790ilg.MarkLabel(labelFalse); 1791ilg.Ldc(false); 1792ilg.MarkLabel(labelEnd); 1793ilg.AndIf(); 1795labelFalse = ilg.DefineLabel(); 1796labelEnd = ilg.DefineLabel(); 1811ilg.Ldloc(elemLoc); 1812ilg.Call(XmlNode_get_Name); 1813ilg.Ldstr(element.Name); 1821ilg.Call(String_op_Equality); 1822ilg.Brfalse(labelFalse); 1823ilg.Ldloc(elemLoc); 1824ilg.Call(XmlNode_get_NamespaceURI); 1825ilg.Ldstr(element.Namespace); 1826ilg.Call(String_op_Equality); 1827ilg.Br(labelEnd); 1828ilg.MarkLabel(labelFalse); 1829ilg.Ldc(false); 1830ilg.MarkLabel(labelEnd); 1831if (choice != null) ilg.If(); 1832else ilg.AndIf(); 1833WriteElement(new SourceInfo("elem", null, null, elemLoc.LocalType, ilg), element, arrayName, writeAccessors); 1837ilg.Else(); 1846ilg.Ldarg(0); 1847ilg.Ldstr(enumFullName); 1848ilg.Ldstr(choice.MemberName); 1849ilg.Ldloc(elemLoc); 1850ilg.Call(XmlNode_get_Name); 1851ilg.Ldloc(elemLoc); 1852ilg.Call(XmlNode_get_NamespaceURI); 1853ilg.Call(XmlSerializationWriter_CreateChoiceIdentifierValueException); 1854ilg.Throw(); 1855ilg.EndIf(); 1860ilg.Else(); 1864WriteElement(new SourceInfo("elem", null, null, elemLoc.LocalType, ilg), unnamedAny, arrayName, writeAccessors); 1875ilg.Ldarg(0); 1876ilg.Ldloc(elemLoc); 1891ilg.Call(XmlNode_get_Name); 1892ilg.Ldloc(elemLoc); 1893ilg.Call(XmlNode_get_NamespaceURI); 1894ilg.Call(XmlSerializationWriter_CreateUnknownAnyElementException); 1895ilg.Throw(); 1899ilg.EndIf(); 1907ilg.InitElseIf(); 1909ilg.AndIf(); 1923ilg.InitElseIf(); 1925ilg.Load(null); 1926ilg.AndIf(Cmp.NotEqualTo); 1930ilg.Else(); 1940ilg.Ldarg(0); 1942ilg.Call(XmlSerializationWriter_CreateUnknownTypeException); 1943ilg.Throw(); 1945ilg.EndIf(); 1949ilg.EndIf(); 1959ilg.Ldarg(0); 1975ilg.Call(XmlSerializationWriter_WriteValue); 1998ilg.Ldarg(0); 1999ilg.Call(XmlSerializationWriter_get_Writer); 2000ilg.Call(WriteTo); 2024ilg.Call(Nullable_get_HasValue); 2029ilg.Load(null); 2030ilg.Cne(); 2032ilg.If(); 2040ilg.Else(); 2043ilg.EndIf(); 2054ilg.EnterScope(); 2065ilg.Ldloc(ilg.GetLocal(arrayName)); 2066ilg.Load(null); 2067ilg.If(Cmp.NotEqualTo); 2075ilg.EndIf(); 2081ilg.EndIf(); 2084ilg.ExitScope(); 2114ilg.Ldarg(0); 2115ilg.Ldstr(name); 2117ilg.Ldstr(ns); 2123ilg.Ldc(element.IsNullable); 2126ilg.Ldc(false); 2133ilg.Call(methodBuilder); 2149Label ifLabel1 = ilg.DefineLabel(); 2150Label ifLabel2 = ilg.DefineLabel(); 2152ilg.IsInst(typeof(XmlNode)); 2153ilg.Brtrue(ifLabel1); 2155ilg.Load(null); 2156ilg.Ceq(); 2157ilg.Br(ifLabel2); 2158ilg.MarkLabel(ifLabel1); 2159ilg.Ldc(true); 2160ilg.MarkLabel(ifLabel2); 2161ilg.If(); 2165ilg.Else(); 2174ilg.Ldarg(0); 2176ilg.Call(XmlSerializationWriter_CreateInvalidAnyTypeException); 2177ilg.Throw(); 2179ilg.EndIf(); 2197ilg.Ldarg(0); 2199ilg.Ldstr(name); 2200ilg.Ldstr(ns); 2201ilg.Ldc(isNullable); 2202ilg.Ldc(isAny); 2203ilg.Call(XmlSerializationWriter_func); 2211Label labelEnd = ilg.DefineLabel(); 2212Label labelFalse = ilg.DefineLabel(); 2213Label labelTrue = ilg.DefineLabel(); 2217ilg.Brfalse(labelTrue); 2220ilg.Brfalse(labelFalse); 2229ilg.Call(String_get_Length); 2230ilg.Ldc(0); 2231ilg.Cne(); 2232ilg.Br(labelEnd); 2235ilg.MarkLabel(labelTrue); 2236ilg.Ldc(true); 2240ilg.MarkLabel(labelFalse); 2241ilg.Ldc(false); 2243ilg.MarkLabel(labelEnd); 2244ilg.If(); 2251ilg.Load(null); 2252ilg.Cne(); 2257ilg.Ldc(Convert.ChangeType(value, source.Type, CultureInfo.InvariantCulture)); 2258ilg.Cne(); 2264ilg.Ldc(value); 2273ilg.Call(op_Inequality); 2275ilg.Cne(); 2277ilg.If(); 2283Label labelFalse = ilg.DefineLabel(); 2284Label labelEnd = ilg.DefineLabel(); 2286ilg.Load(null); 2287ilg.Beq(labelFalse); 2290ilg.Ldc(false); 2291ilg.Ceq(); 2292ilg.Br(labelEnd); 2293ilg.MarkLabel(labelFalse); 2294ilg.Ldc(false); 2295ilg.MarkLabel(labelEnd); 2296ilg.If(); 2304ilg.Ldarg(0); 2305ilg.Ldstr(typeDesc.FullName); 2306ilg.Ldstr(choice.MemberName); 2307ilg.Ldstr(enumName); 2308ilg.Call(XmlSerializationWriter_CreateMismatchChoiceException); 2309ilg.Throw(); 2310ilg.EndIf(); 2315LocalBuilder local = ilg.GetLocal(source); 2317ilg.Load(local); 2318ilg.Load(null); 2319ilg.If(Cmp.EqualTo); 2321ilg.Else(); 2334ilg.Ldarg(0); 2336ilg.Call(XmlSerializationWriter_WriteNamespaceDeclarations); 2353RaCodeGen.WriteLocalDecl(variableName, new SourceInfo(initValue, initValue, null, type, ilg)); 2362RaCodeGen.WriteTypeCompare(variable, type, ilg); 2366RaCodeGen.WriteInstanceOf(source, type, ilg); 2370RaCodeGen.WriteArrayTypeCompare(variable, arrayType, ilg);