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