Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ WriteXmlNodeEqual() [2/2]

void System.Xml.Serialization.XmlSerializationReaderILGen.WriteXmlNodeEqual ( string source,
string name,
string ns,
bool doAndIf )
inlineprivate

Definition at line 1457 of file XmlSerializationReaderILGen.cs.

1458 {
1459 bool flag = string.IsNullOrEmpty(name);
1460 if (!flag)
1461 {
1462 WriteID(name);
1463 }
1464 WriteID(ns);
1465 MethodInfo method = typeof(XmlSerializationReader).GetMethod("get_" + source, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
1466 MethodInfo method2 = typeof(XmlReader).GetMethod("get_LocalName", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
1467 MethodInfo method3 = typeof(XmlReader).GetMethod("get_NamespaceURI", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
1470 if (!flag)
1471 {
1472 ilg.Ldarg(0);
1473 ilg.Call(method);
1474 ilg.Call(method2);
1475 ilg.Ldarg(0);
1477 ilg.Bne(label);
1478 }
1479 ilg.Ldarg(0);
1480 ilg.Call(method);
1481 ilg.Call(method3);
1482 ilg.Ldarg(0);
1483 ilg.LoadMember(_idNameFields[ns ?? string.Empty]);
1484 ilg.Ceq();
1485 if (!flag)
1486 {
1487 ilg.Br_S(label2);
1489 ilg.Ldc(boolVar: false);
1491 }
1492 if (doAndIf)
1493 {
1494 ilg.AndIf();
1495 }
1496 }
Type LoadMember(object obj, MemberInfo memberInfo)
void Call(MethodInfo methodInfo)
readonly Dictionary< string, FieldBuilder > _idNameFields

References System.Xml.Serialization.XmlSerializationReaderILGen._idNameFields, System.Xml.Serialization.CodeGenerator.AndIf(), System.Xml.Serialization.CodeGenerator.Bne(), System.Xml.Serialization.CodeGenerator.Br_S(), System.Xml.Serialization.CodeGenerator.Call(), System.Xml.Serialization.CodeGenerator.Ceq(), System.Xml.Serialization.CodeGenerator.DefineLabel(), System.Xml.Dictionary, System.Type.EmptyTypes, System.Xml.Serialization.XmlSerializationILGen.ilg, System.Xml.Serialization.CodeGenerator.Ldarg(), System.Xml.Serialization.CodeGenerator.Ldc(), System.Xml.Serialization.CodeGenerator.LoadMember(), System.Xml.Serialization.CodeGenerator.MarkLabel(), System.Text.RegularExpressions.name, System.source, and System.Xml.Serialization.XmlSerializationReaderILGen.WriteID().