180 if (
mapping.TypeDesc.IsArrayLike)
192 if (
mapping.ChoiceIdentifier !=
null)
249 base.Writer.Write(
" class ");
251 base.Writer.Write(
" : ");
253 base.Writer.WriteLine(
" {");
254 base.Writer.Indent++;
321 base.Writer.WriteLine();
324 base.Writer.Write(
"string ");
326 base.Writer.WriteLine(
";");
328 base.Writer.WriteLine();
329 base.Writer.WriteLine(
"protected override void InitIDs() {");
330 base.Writer.Indent++;
335 base.Writer.Write(
" = Reader.NameTable.Add(");
337 base.Writer.WriteLine(
");");
339 base.Writer.Indent--;
340 base.Writer.WriteLine(
"}");
341 base.Writer.Indent--;
342 base.Writer.WriteLine(
"}");
368 base.Writer.Write(
"if (Reader.IsStartElement(");
370 base.Writer.Write(
", ");
372 base.Writer.WriteLine(
")) {");
373 base.Writer.Indent++;
380 base.Writer.WriteLine(
"else {");
381 base.Writer.Indent++;
383 base.Writer.Write(func);
384 base.Writer.Write(
"(");
388 base.Writer.Write(
", ");
394 base.Writer.WriteLine(
");");
397 base.Writer.Indent--;
398 base.Writer.WriteLine(
"}");
404 base.Writer.WriteLine();
405 base.Writer.WriteLine(
"protected override void InitCallbacks() {");
406 base.Writer.Indent++;
426 base.Writer.Write(
"AddReadCallback(");
428 base.Writer.Write(
", ");
430 base.Writer.Write(
", ");
432 base.Writer.Write(
", new ");
434 base.Writer.Write(
"(this.");
435 base.Writer.Write(
s);
436 base.Writer.WriteLine(
"));");
440 base.Writer.Indent--;
441 base.Writer.WriteLine(
"}");
444 base.Writer.WriteLine();
445 base.Writer.Write(
"object ");
447 base.Writer.WriteLine(
"() {");
448 base.Writer.Indent++;
449 base.Writer.WriteLine(
"// dummy array method");
450 base.Writer.WriteLine(
"UnknownNode(null);");
451 base.Writer.WriteLine(
"return null;");
452 base.Writer.Indent--;
453 base.Writer.WriteLine(
"}");
468 string result =
null;
471 for (
int i = 0; i <
mappings.Length; i++)
485 if (
mapping.ChoiceIdentifier ==
null)
499 base.Writer.WriteLine();
500 base.Writer.Write(
"public object[] ");
502 base.Writer.WriteLine(
"() {");
503 base.Writer.Indent++;
504 base.Writer.WriteLine(
"Reader.MoveToContent();");
505 base.Writer.Write(
"object[] p = new object[");
507 base.Writer.WriteLine(
"];");
512 base.Writer.Indent++;
521 for (
int i = 0; i <
members.Length; i++)
528 arraySource =
$"(({memberMapping.TypeDesc.CSharpName}){text2})";
601 if (
array.Length != 0 &&
array[0].Mapping.IsReturnValue)
603 base.Writer.WriteLine(
"IsReturnValue = true;");
612 base.Writer.WriteLine(
"Reader.MoveToElement();");
617 base.Writer.WriteLine(
"if (Reader.IsEmptyElement) { Reader.Skip(); Reader.MoveToContent(); continue; }");
618 base.Writer.WriteLine(
"Reader.ReadStartElement();");
622 base.Writer.WriteLine(
"int state = 0;");
625 base.Writer.Indent++;
628 base.Writer.WriteLine(
"Reader.MoveToContent();");
633 base.Writer.WriteLine(
"ReadEndElement();");
634 base.Writer.Indent--;
635 base.Writer.WriteLine(
"}");
637 base.Writer.WriteLine(
"Reader.MoveToContent();");
640 base.Writer.WriteLine(
"return p;");
641 base.Writer.Indent--;
642 base.Writer.WriteLine(
"}");
648 for (
int i = 0; i <
mappings.Length; i++)
653 base.Writer.Write(
"[");
655 base.Writer.Write(
"] = ");
658 base.Writer.Write(
"null");
664 base.Writer.WriteLine(
";");
677 base.Writer.WriteLine();
678 base.Writer.Write(
"public object[] ");
680 base.Writer.WriteLine(
"() {");
681 base.Writer.Indent++;
682 base.Writer.WriteLine(
"Reader.MoveToContent();");
683 base.Writer.Write(
"object[] p = new object[");
685 base.Writer.WriteLine(
"];");
692 base.Writer.Write(
"if (!");
694 base.Writer.WriteLine(
") throw CreateUnknownNodeException();");
696 base.Writer.WriteLine(
"bool isEmptyWrapper = Reader.IsEmptyElement;");
697 base.Writer.WriteLine(
"Reader.ReadStartElement();");
700 for (
int i = 0; i <
members.Length; i++)
707 arraySource =
$"(({memberMapping.TypeDesc.CSharpName}){text2})";
731 if (
array.Length != 0 &&
array[0].Mapping.IsReturnValue)
733 base.Writer.WriteLine(
"IsReturnValue = true;");
742 base.Writer.Indent++;
743 string elementElseString = ((
text4 ==
null) ?
"UnknownNode((object)p);" :
"if (Reader.GetAttribute(\"id\", null) != null) { ReadReferencedElement(); } else { UnknownNode((object)p); }");
745 base.Writer.WriteLine(
"Reader.MoveToContent();");
749 base.Writer.WriteLine(
"if (!isEmptyWrapper) ReadEndElement();");
755 base.Writer.WriteLine(
"ReadReferencedElements();");
756 base.Writer.WriteLine(
"return p;");
757 base.Writer.Indent--;
758 base.Writer.WriteLine(
"}");
776 base.Writer.Write(
" ");
777 base.Writer.Write(
"ci =");
778 base.Writer.Write(
"(" +
text +
")");
780 base.Writer.WriteLine(
";");
781 base.Writer.WriteLine(
"for (int i = 0; i < ci.Length; i++) {");
782 base.Writer.Indent++;
786 base.Writer.Write(
"ci[i]");
794 base.Writer.WriteLine(
"}");
796 base.Writer.WriteLine(
");");
797 base.Writer.Indent--;
798 base.Writer.WriteLine(
"}");
806 base.Writer.WriteLine();
807 base.Writer.Write(
"public object ");
809 base.Writer.WriteLine(
"() {");
810 base.Writer.Indent++;
811 base.Writer.WriteLine(
"object o = null;");
819 base.Writer.WriteLine(
"Reader.MoveToContent();");
824 base.Writer.WriteLine(
"Referenced(o);");
825 base.Writer.WriteLine(
"ReadReferencedElements();");
827 base.Writer.WriteLine(
"return (object)o;");
828 base.Writer.Indent--;
829 base.Writer.WriteLine(
"}");
866 base.Writer.Write(
"(");
868 base.Writer.Write(
")");
871 base.Writer.Write(
"(");
876 base.Writer.Write(
")");
882 else if (
mapping.TypeDesc.FormatterName ==
"String")
884 if (
mapping.TypeDesc.CollapseWhitespace)
886 base.Writer.Write(
"CollapseWhitespace(");
888 base.Writer.Write(
")");
897 if (!
mapping.TypeDesc.HasCustomFormatter)
900 base.Writer.Write(
".");
902 base.Writer.Write(
"To");
904 base.Writer.Write(
"(");
906 base.Writer.Write(
")");
942 base.Writer.WriteLine();
944 base.Writer.Write(
" ");
945 base.Writer.Write(
s);
946 base.Writer.WriteLine(
";");
947 base.Writer.WriteLine();
948 base.Writer.Write(
"internal ");
950 base.Writer.Write(
" ");
952 base.Writer.WriteLine(
" {");
953 base.Writer.Indent++;
954 base.Writer.WriteLine(
"get {");
955 base.Writer.Indent++;
956 base.Writer.Write(
"if ((object)");
957 base.Writer.Write(
s);
958 base.Writer.WriteLine(
" == null) {");
959 base.Writer.Indent++;
961 base.Writer.Write(
" h = new ");
963 base.Writer.WriteLine(
"();");
965 for (
int i = 0; i <
constants.Length; i++)
967 base.Writer.Write(
"h.Add(");
969 if (!
mapping.TypeDesc.UseReflection)
971 base.Writer.Write(
", (long)");
973 base.Writer.Write(
".@");
979 base.Writer.Write(
", ");
987 base.Writer.WriteLine(
");");
989 base.Writer.Write(
s);
990 base.Writer.WriteLine(
" = h;");
991 base.Writer.Indent--;
992 base.Writer.WriteLine(
"}");
993 base.Writer.Write(
"return ");
994 base.Writer.Write(
s);
995 base.Writer.WriteLine(
";");
996 base.Writer.Indent--;
997 base.Writer.WriteLine(
"}");
998 base.Writer.Indent--;
999 base.Writer.WriteLine(
"}");
1011 base.Writer.WriteLine();
1016 base.Writer.Write(
"object");
1017 base.Writer.Write(
" ");
1019 base.Writer.WriteLine(
"() {");
1020 base.Writer.Indent++;
1021 base.Writer.WriteLine(
"string s = Reader.ReadElementString();");
1026 base.Writer.Write(
" ");
1028 base.Writer.WriteLine(
"(string s) {");
1029 base.Writer.Indent++;
1036 base.Writer.Write(
"return ");
1038 base.Writer.Write(
".ToObject(");
1040 base.Writer.Write(
", ToEnum(s, ");
1041 base.Writer.Write(
s);
1042 base.Writer.Write(
", ");
1044 base.Writer.WriteLine(
"));");
1048 base.Writer.Write(
"return (");
1050 base.Writer.Write(
")ToEnum(s, ");
1051 base.Writer.Write(
s);
1052 base.Writer.Write(
", ");
1054 base.Writer.WriteLine(
");");
1059 base.Writer.WriteLine(
"switch (s) {");
1060 base.Writer.Indent++;
1067 base.Writer.Write(
"case ");
1069 base.Writer.Write(
": return ");
1071 base.Writer.WriteLine(
";");
1075 base.Writer.Write(
"default: throw CreateUnknownConstantException(s, ");
1077 base.Writer.WriteLine(
");");
1078 base.Writer.Indent--;
1079 base.Writer.WriteLine(
"}");
1081 base.Writer.Indent--;
1082 base.Writer.WriteLine(
"}");
1089 base.Writer.Write(
"if (");
1091 base.Writer.WriteLine(
")");
1092 base.Writer.Indent++;
1094 base.Writer.Write(
"return ");
1099 base.Writer.Write(
s);
1100 base.Writer.Write(
"(");
1103 base.Writer.Write(
"isNullable, ");
1105 base.Writer.WriteLine(
"false);");
1106 base.Writer.Indent--;
1125 base.Writer.Write(
"if (");
1127 base.Writer.WriteLine(
") {");
1128 base.Writer.Indent++;
1129 base.Writer.WriteLine(
"Reader.ReadStartElement();");
1131 base.Writer.Write(
"object e = ");
1132 base.Writer.Write(
s);
1133 base.Writer.WriteLine(
"(CollapseWhitespace(Reader.ReadString()));");
1134 base.Writer.WriteLine(
"ReadEndElement();");
1135 base.Writer.WriteLine(
"return e;");
1136 base.Writer.Indent--;
1137 base.Writer.WriteLine(
"}");
1150 base.Writer.Write(
"if (");
1152 base.Writer.WriteLine(
") {");
1153 base.Writer.Indent++;
1168 base.Writer.Write(
"object");
1175 base.Writer.Write(
" a = ");
1179 base.Writer.WriteLine(
";");
1183 base.Writer.WriteLine(
"null;");
1186 base.Writer.WriteLine(
"return a;");
1187 base.Writer.Indent--;
1188 base.Writer.WriteLine(
"}");
1199 base.Writer.WriteLine();
1201 base.Writer.Write(
" ");
1202 base.Writer.Write(
s);
1203 base.Writer.WriteLine(
"(bool checkType) {");
1204 base.Writer.Indent++;
1206 base.Writer.Write(
" o = ");
1209 base.Writer.Write(
"null");
1213 base.Writer.Write(
"default(");
1215 base.Writer.Write(
")");
1217 base.Writer.WriteLine(
";");
1218 base.Writer.WriteLine(
"if (ReadNull())");
1219 base.Writer.Indent++;
1220 base.Writer.WriteLine(
"return o;");
1221 base.Writer.Indent--;
1227 base.Writer.WriteLine(
"return o;");
1228 base.Writer.Indent--;
1229 base.Writer.WriteLine(
"}");
1249 base.Writer.WriteLine();
1251 base.Writer.Write(
" ");
1252 base.Writer.Write(
s);
1253 base.Writer.Write(
"(");
1256 base.Writer.Write(
"bool isNullable, ");
1258 base.Writer.WriteLine(
"bool checkType) {");
1259 base.Writer.Indent++;
1261 base.Writer.WriteLine(
" xsiType = checkType ? GetXsiType() : null;");
1262 base.Writer.WriteLine(
"bool isNull = false;");
1265 base.Writer.WriteLine(
"if (isNullable) isNull = ReadNull();");
1267 base.Writer.WriteLine(
"if (checkType) {");
1270 base.Writer.Indent++;
1271 base.Writer.WriteLine(
"if (isNull) {");
1272 base.Writer.Indent++;
1273 base.Writer.WriteLine(
"if (xsiType != null) return (" +
text +
")ReadTypedNull(xsiType);");
1274 base.Writer.Write(
"else return ");
1278 base.Writer.WriteLine(
";");
1282 base.Writer.WriteLine(
"null;");
1284 base.Writer.Indent--;
1285 base.Writer.WriteLine(
"}");
1287 base.Writer.Write(
"if (xsiType == null");
1290 base.Writer.Write(
" || ");
1293 base.Writer.WriteLine(
") {");
1296 base.Writer.Indent++;
1297 base.Writer.WriteLine(
"return ReadTypedPrimitive(new System.Xml.XmlQualifiedName(\"anyType\", \"http://www.w3.org/2001/XMLSchema\"));");
1298 base.Writer.Indent--;
1300 base.Writer.WriteLine(
"}");
1301 base.Writer.WriteLine(
"else {");
1302 base.Writer.Indent++;
1310 base.Writer.Write(
"return ReadTypedPrimitive((");
1314 base.Writer.Write(
"throw CreateUnknownTypeException((");
1317 base.Writer.WriteLine(
")xsiType);");
1318 base.Writer.Indent--;
1319 base.Writer.WriteLine(
"}");
1322 base.Writer.Indent--;
1324 base.Writer.WriteLine(
"}");
1327 base.Writer.WriteLine(
"if (isNull) return null;");
1331 base.Writer.Write(
"throw CreateAbstractTypeException(");
1333 base.Writer.Write(
", ");
1335 base.Writer.WriteLine(
");");
1341 base.Writer.WriteLine(
"DecodeName = false;");
1423 if (member !=
null && member !=
member2)
1437 base.Writer.WriteLine(
"Reader.MoveToElement();");
1438 base.Writer.WriteLine(
"if (Reader.IsEmptyElement) {");
1439 base.Writer.Indent++;
1440 base.Writer.WriteLine(
"Reader.Skip();");
1442 base.Writer.WriteLine(
"return o;");
1443 base.Writer.Indent--;
1444 base.Writer.WriteLine(
"}");
1445 base.Writer.WriteLine(
"Reader.ReadStartElement();");
1448 base.Writer.WriteLine(
"int state = 0;");
1451 base.Writer.Indent++;
1454 base.Writer.WriteLine(
"Reader.MoveToContent();");
1457 base.Writer.WriteLine(
"ReadEndElement();");
1458 base.Writer.WriteLine(
"return o;");
1460 base.Writer.Indent--;
1461 base.Writer.WriteLine(
"}");
1471 base.Writer.WriteLine();
1472 base.Writer.Write(
"object");
1473 base.Writer.Write(
" ");
1475 base.Writer.Write(
"(");
1476 base.Writer.WriteLine(
") {");
1477 base.Writer.Indent++;
1483 base.Writer.Write(
"throw CreateAbstractTypeException(");
1485 base.Writer.Write(
", ");
1487 base.Writer.WriteLine(
");");
1517 base.Writer.WriteLine(
"Reader.MoveToElement();");
1518 base.Writer.WriteLine(
"if (Reader.IsEmptyElement) { Reader.Skip(); return o; }");
1519 base.Writer.WriteLine(
"Reader.ReadStartElement();");
1521 base.Writer.Indent++;
1523 base.Writer.WriteLine(
"Reader.MoveToContent();");
1525 base.Writer.WriteLine(
"ReadEndElement();");
1526 base.Writer.WriteLine(
"return o;");
1528 base.Writer.Indent--;
1529 base.Writer.WriteLine(
"}");
1538 base.Writer.WriteLine();
1539 base.Writer.Write(
"void ");
1541 base.Writer.WriteLine(
"(object objFixup) {");
1542 base.Writer.Indent++;
1543 base.Writer.WriteLine(
"Fixup fixup = (Fixup)objFixup;");
1545 base.Writer.WriteLine(
"string[] ids = fixup.Ids;");
1553 base.Writer.Write(
"if (ids[");
1555 base.Writer.WriteLine(
"] != null) {");
1556 base.Writer.Indent++;
1558 string text2 =
"GetTarget(ids[" +
text +
"])";
1568 base.Writer.WriteLine(
"try {");
1569 base.Writer.Indent++;
1578 base.Writer.WriteLine(
";");
1582 base.Writer.WriteLine(
" = true;");
1589 base.Writer.Indent--;
1590 base.Writer.WriteLine(
"}");
1592 base.Writer.Indent--;
1593 base.Writer.WriteLine(
"}");
1598 base.Writer.WriteLine(
"// get array of the collection items");
1612 base.Writer.Write(
"if ((object)(");
1614 base.Writer.WriteLine(
") == null) {");
1615 base.Writer.Indent++;
1618 base.Writer.Write(
"throw CreateReadOnlyCollectionException(");
1620 base.Writer.WriteLine(
");");
1625 base.Writer.Write(
" = ");
1627 base.Writer.WriteLine(
";");
1629 base.Writer.Indent--;
1630 base.Writer.WriteLine(
"}");
1631 base.Writer.Write(
"CollectionFixup collectionFixup = new CollectionFixup(");
1633 base.Writer.Write(
", ");
1634 base.Writer.Write(
"new ");
1636 base.Writer.Write(
"(this.");
1638 base.Writer.Write(
"), ");
1640 base.Writer.WriteLine(
");");
1641 base.Writer.WriteLine(
"AddFixup(collectionFixup);");
1646 base.Writer.Write(
"void ");
1648 base.Writer.WriteLine(
"(object collection, object collectionItems) {");
1649 base.Writer.Indent++;
1650 base.Writer.WriteLine(
"if (collectionItems == null) return;");
1651 base.Writer.WriteLine(
"if (collection == null) return;");
1657 base.Writer.Indent--;
1658 base.Writer.WriteLine(
"}");
1663 base.Writer.Write(
"((object) ((");
1665 base.Writer.Write(
")");
1667 base.Writer.Write(
").Name == (object)");
1669 base.Writer.Write(
" && (object) ((");
1671 base.Writer.Write(
")");
1673 base.Writer.Write(
").Namespace == (object)");
1675 base.Writer.Write(
")");
1680 base.Writer.Write(
"(");
1681 if (name !=
null && name.Length > 0)
1683 base.Writer.Write(
"(object) ");
1685 base.Writer.Write(
".LocalName == (object)");
1687 base.Writer.Write(
" && ");
1689 base.Writer.Write(
"(object) ");
1691 base.Writer.Write(
".NamespaceURI == (object)");
1693 base.Writer.Write(
")");
1716 base.Writer.WriteLine(
"while (Reader.MoveToNextAttribute()) {");
1717 base.Writer.Indent++;
1720 if (
member2.Mapping.Xmlns !=
null)
1736 base.Writer.Write(
"else ");
1738 base.Writer.Write(
"if (");
1739 if (
member2.ParamsReadSource !=
null)
1741 base.Writer.Write(
"!");
1743 base.Writer.Write(
" && ");
1753 base.Writer.WriteLine(
") {");
1754 base.Writer.Indent++;
1756 base.Writer.Indent--;
1757 base.Writer.WriteLine(
"}");
1763 base.Writer.Write(
"else ");
1767 base.Writer.WriteLine(
"if (IsXmlnsAttribute(Reader.Name)) {");
1768 base.Writer.Indent++;
1769 base.Writer.Write(
"if (");
1771 base.Writer.Write(
" == null) ");
1773 base.Writer.Write(
" = new ");
1775 base.Writer.WriteLine(
"();");
1777 base.Writer.WriteLine(
".Add(Reader.Name.Length == 5 ? \"\" : Reader.LocalName, Reader.Value);");
1778 base.Writer.Indent--;
1779 base.Writer.WriteLine(
"}");
1780 base.Writer.WriteLine(
"else {");
1781 base.Writer.Indent++;
1785 base.Writer.WriteLine(
"if (!IsXmlnsAttribute(Reader.Name)) {");
1786 base.Writer.Indent++;
1791 base.Writer.Write(
" attr = ");
1792 base.Writer.Write(
"(");
1794 base.Writer.WriteLine(
") Document.ReadNode(Reader);");
1795 base.Writer.WriteLine(
"ParseWsdlArrayType(attr);");
1801 base.Writer.Write(
"(");
1805 base.Writer.Write(
", ");
1818 base.Writer.WriteLine(
");");
1820 base.Writer.Indent--;
1821 base.Writer.WriteLine(
"}");
1822 base.Writer.Indent--;
1823 base.Writer.WriteLine(
"}");
1835 base.Writer.Write(
"attr");
1837 base.Writer.WriteLine(
";");
1845 base.Writer.Write(
"if (attr is ");
1847 base.Writer.WriteLine(
") {");
1848 base.Writer.Indent++;
1850 base.Writer.Write(
"(");
1852 base.Writer.Write(
")attr");
1854 base.Writer.WriteLine(
";");
1855 base.Writer.Indent--;
1856 base.Writer.WriteLine(
"}");
1861 base.Writer.WriteLine(
"string listValues = Reader.Value;");
1862 base.Writer.WriteLine(
"string[] vals = listValues.Split(null);");
1863 base.Writer.WriteLine(
"for (int i = 0; i < vals.Length; i++) {");
1864 base.Writer.Indent++;
1869 base.Writer.WriteLine(
";");
1870 base.Writer.Indent--;
1871 base.Writer.WriteLine(
"}");
1878 base.Writer.WriteLine(
";");
1883 base.Writer.WriteLine(
" = true;");
1888 base.Writer.WriteLine(
" = true;");
1909 base.Writer.Write(
"Fixup fixup = new Fixup(");
1911 base.Writer.Write(
", ");
1912 base.Writer.Write(
"new ");
1914 base.Writer.Write(
"(this.");
1916 base.Writer.Write(
"), ");
1918 base.Writer.WriteLine(
");");
1919 base.Writer.WriteLine(
"AddFixup(fixup);");
1940 base.Writer.Write(
"int ");
1941 base.Writer.Write(
s);
1942 base.Writer.WriteLine(
" = 0;");
1946 base.Writer.Write(
"int c");
1948 base.Writer.WriteLine(
" = 0;");
1960 base.Writer.WriteLine(
"});");
1964 base.Writer.WriteLine(
");");
1970 base.Writer.Write(
"if ((object)(");
1972 base.Writer.Write(
") == null) ");
1975 base.Writer.Write(
"throw CreateReadOnlyCollectionException(");
1977 base.Writer.WriteLine(
");");
1982 base.Writer.Write(
" = ");
1984 base.Writer.WriteLine(
";");
1997 string text =
string.Empty;
2030 base.Writer.WriteLine(
"string tmp = null;");
2032 base.Writer.Write(
"if (Reader.NodeType == ");
2034 base.Writer.WriteLine(
".Element) {");
2035 base.Writer.Indent++;
2045 base.Writer.Indent--;
2046 base.Writer.WriteLine(
"}");
2051 base.Writer.WriteLine(
"else {");
2052 base.Writer.Indent++;
2054 base.Writer.Indent--;
2055 base.Writer.WriteLine(
"}");
2060 base.Writer.Write(
"else if (Reader.NodeType == ");
2062 base.Writer.WriteLine(
".Text || ");
2063 base.Writer.Write(
"Reader.NodeType == ");
2065 base.Writer.WriteLine(
".CDATA || ");
2066 base.Writer.Write(
"Reader.NodeType == ");
2068 base.Writer.WriteLine(
".Whitespace || ");
2069 base.Writer.Write(
"Reader.NodeType == ");
2071 base.Writer.WriteLine(
".SignificantWhitespace) {");
2072 base.Writer.Indent++;
2080 base.Writer.WriteLine(
";");
2082 base.Writer.Indent--;
2083 base.Writer.WriteLine(
"}");
2098 base.Writer.Write(
"Document.CreateTextNode(Reader.ReadString())");
2106 if (
text.Mapping.TypeDesc.CollapseWhitespace)
2108 base.Writer.Write(
"CollapseWhitespace(Reader.ReadString())");
2112 base.Writer.Write(
"Reader.ReadString()");
2115 else if (
text.Mapping.TypeDesc ==
base.StringTypeDesc ||
text.Mapping.TypeDesc.FormatterName ==
"String")
2117 base.Writer.Write(
"tmp = ReadString(tmp, ");
2118 if (
text.Mapping.TypeDesc.CollapseWhitespace)
2120 base.Writer.WriteLine(
"true);");
2124 base.Writer.WriteLine(
"false);");
2127 base.Writer.Write(
"tmp");
2136 base.Writer.WriteLine(
";");
2141 base.Writer.WriteLine(
"string refElemId = null;");
2142 base.Writer.WriteLine(
"object refElem = ReadReferencingElement(null, null, true, out refElemId);");
2143 base.Writer.WriteLine(
"if (refElemId != null) {");
2144 base.Writer.Indent++;
2146 base.Writer.WriteLine(
".Add(refElemId);");
2148 base.Writer.WriteLine(
"IsObject.Add(false);");
2149 base.Writer.Indent--;
2150 base.Writer.WriteLine(
"}");
2151 base.Writer.WriteLine(
"else if (refElem != null) {");
2152 base.Writer.Indent++;
2154 base.Writer.WriteLine(
".Add(refElem);");
2156 base.Writer.WriteLine(
"IsObject.Add(true);");
2157 base.Writer.Indent--;
2158 base.Writer.WriteLine(
"}");
2166 for (
int i = 0; i < elements.Length; i++)
2184 for (
int i = 0; i <
members.Length; i++)
2201 base.Writer.WriteLine(
"switch (state) {");
2213 for (
int j = 0;
j < elements.Length;
j++)
2223 if (
flag3 && num == 0)
2225 base.Writer.WriteLine(
"do {");
2226 base.Writer.Indent++;
2231 base.Writer.Write(
"else ");
2235 base.Writer.Write(
"case ");
2237 base.Writer.WriteLine(
":");
2238 base.Writer.Indent++;
2242 base.Writer.Write(
"if (");
2245 base.Writer.Write(
"!");
2247 base.Writer.Write(
" && ");
2260 base.Writer.Write(
".IsAssignableFrom(");
2262 base.Writer.Write(
"Type)");
2268 base.Writer.Write(
"(IsReturnValue || ");
2272 base.Writer.Write(
"true");
2280 base.Writer.Write(
")");
2283 base.Writer.WriteLine(
") {");
2284 base.Writer.Indent++;
2289 base.Writer.Write(
"if (");
2291 base.Writer.WriteLine(
" != null) {");
2292 base.Writer.Indent++;
2306 base.Writer.WriteLine(
";");
2309 base.Writer.Indent--;
2310 base.Writer.WriteLine(
"}");
2314 base.Writer.Write(
"fixup.Ids[");
2316 base.Writer.Write(
"] = ");
2318 base.Writer.WriteLine(
"Id;");
2327 base.Writer.WriteLine(
"IsReturnValue = false;");
2332 base.Writer.WriteLine(
" = true;");
2336 base.Writer.WriteLine(
"break;");
2338 base.Writer.Indent--;
2339 base.Writer.WriteLine(
"}");
2345 base.Writer.WriteLine(
"else {");
2346 base.Writer.Indent++;
2349 base.Writer.Write(
"state = ");
2351 base.Writer.WriteLine(
";");
2354 base.Writer.Indent--;
2355 base.Writer.WriteLine(
"}");
2357 base.Writer.WriteLine(
"break;");
2358 base.Writer.Indent--;
2361 if (num > 0 &&
flag2)
2363 base.Writer.WriteLine(
"default:");
2364 base.Writer.Indent++;
2371 base.Writer.WriteLine(
"break;");
2373 base.Writer.Indent--;
2376 base.Writer.WriteLine(
"} while (false);");
2380 base.Writer.WriteLine(
"}");
2396 text2 =
"soap = (System.Object[])EnsureArrayIndex(soap, " +
text +
"+2, typeof(System.Object)); ";
2435 base.Writer.Write(
" soap[1] = ");
2445 base.Writer.Write(
"ShrinkArray(");
2447 base.Writer.Write(
", ");
2448 base.Writer.Write(
s);
2449 base.Writer.Write(
", ");
2451 base.Writer.Write(
", ");
2453 base.Writer.Write(
")");
2455 base.Writer.WriteLine(
";");
2467 base.Writer.Write(
"ShrinkArray(");
2469 base.Writer.Write(
", ");
2470 base.Writer.Write(
s);
2471 base.Writer.Write(
", ");
2473 base.Writer.Write(
", ");
2475 base.Writer.Write(
")");
2477 base.Writer.WriteLine(
";");
2483 base.Writer.Write(
" = ");
2485 base.Writer.WriteLine(
";");
2495 base.Writer.Write(
"(");
2497 base.Writer.Write(
")");
2506 base.Writer.Write(
" = ");
2514 base.Writer.Write(
")");
2518 base.Writer.Write(
"})");
2526 base.Writer.Write(
"object rre = ");
2527 base.Writer.Write((
fixupIndex >= 0) ?
"ReadReferencingElement" :
"ReadReferencedElement");
2528 base.Writer.Write(
"(");
2530 base.Writer.Write(
", ");
2534 base.Writer.Write(
", ");
2535 base.Writer.Write(
"out fixup.Ids[");
2537 base.Writer.Write(
"]");
2539 base.Writer.WriteLine(
");");
2543 base.Writer.WriteLine(
"if (rre != null) {");
2544 base.Writer.Indent++;
2546 base.Writer.Indent--;
2547 base.Writer.WriteLine(
"}");
2551 base.Writer.WriteLine(
"try {");
2552 base.Writer.Indent++;
2554 base.Writer.Write(
"rre");
2556 base.Writer.WriteLine(
";");
2561 base.Writer.WriteLine(
"if (!ReadNull()) {");
2562 base.Writer.Indent++;
2573 base.Writer.Write(
"if (((object)(");
2575 base.Writer.Write(
") == null) || ");
2579 base.Writer.Write(
"if (");
2581 base.Writer.WriteLine(
"(Reader.IsEmptyElement)) {");
2582 base.Writer.Indent++;
2583 base.Writer.WriteLine(
"Reader.Skip();");
2584 base.Writer.Indent--;
2585 base.Writer.WriteLine(
"}");
2586 base.Writer.WriteLine(
"else {");
2587 base.Writer.Indent++;
2588 base.Writer.WriteLine(
"Reader.ReadStartElement();");
2590 base.Writer.Indent++;
2593 base.Writer.WriteLine(
"Reader.MoveToContent();");
2595 base.Writer.Indent--;
2596 base.Writer.WriteLine(
"ReadEndElement();");
2597 base.Writer.WriteLine(
"}");
2599 base.Writer.Indent--;
2600 base.Writer.WriteLine(
"}");
2603 base.Writer.WriteLine(
"else {");
2604 base.Writer.Indent++;
2608 base.Writer.Indent--;
2609 base.Writer.WriteLine(
"}");
2618 base.Writer.WriteLine(
" = true;");
2628 base.Writer.Write(
s);
2629 base.Writer.Write(
"(true)");
2631 base.Writer.WriteLine(
";");
2637 base.Writer.WriteLine(
"if (ReadNull()) {");
2638 base.Writer.Indent++;
2646 base.Writer.Write(
"null");
2649 base.Writer.WriteLine(
";");
2650 base.Writer.Indent--;
2651 base.Writer.WriteLine(
"}");
2652 base.Writer.Write(
"else ");
2656 base.Writer.WriteLine(
"if (Reader.IsEmptyElement) {");
2657 base.Writer.Indent++;
2658 base.Writer.WriteLine(
"Reader.Skip();");
2659 base.Writer.Indent--;
2660 base.Writer.WriteLine(
"}");
2661 base.Writer.WriteLine(
"else {");
2665 base.Writer.WriteLine(
"{");
2667 base.Writer.Indent++;
2670 base.Writer.WriteLine(
"if (Reader.IsEmptyElement) {");
2671 base.Writer.Indent++;
2672 base.Writer.WriteLine(
"Reader.Skip();");
2676 base.Writer.Write(
"default(System.TimeSpan)");
2680 base.Writer.Write(
"default(System.DateTimeOffset)");
2683 base.Writer.WriteLine(
";");
2684 base.Writer.Indent--;
2685 base.Writer.WriteLine(
"}");
2686 base.Writer.WriteLine(
"else {");
2687 base.Writer.Indent++;
2691 base.Writer.WriteLine(
";");
2692 base.Writer.Indent--;
2693 base.Writer.WriteLine(
"}");
2700 base.Writer.Write(
"ReadElementQualifiedName()");
2708 base.Writer.WriteLine(
";");
2710 base.Writer.Indent--;
2711 base.Writer.WriteLine(
"}");
2718 base.Writer.Write(
"object rre = ");
2719 base.Writer.Write((
fixupIndex >= 0) ?
"ReadReferencingElement" :
"ReadReferencedElement");
2720 base.Writer.Write(
"(");
2722 base.Writer.Write(
", ");
2726 base.Writer.Write(
", out fixup.Ids[");
2728 base.Writer.Write(
"]");
2730 base.Writer.Write(
")");
2732 base.Writer.WriteLine(
";");
2733 if (
mapping.TypeDesc.IsValueType)
2735 base.Writer.WriteLine(
"if (rre != null) {");
2736 base.Writer.Indent++;
2738 base.Writer.WriteLine(
"try {");
2739 base.Writer.Indent++;
2741 base.Writer.Write(
"rre");
2743 base.Writer.WriteLine(
";");
2745 base.Writer.Write(
"Referenced(");
2747 base.Writer.WriteLine(
");");
2748 if (
mapping.TypeDesc.IsValueType)
2750 base.Writer.Indent--;
2751 base.Writer.WriteLine(
"}");
2759 base.Writer.Write(
"if ((object)(");
2761 base.Writer.Write(
") == null) Reader.Skip(); else ");
2765 base.Writer.Write(
"(");
2766 if (
mapping.TypeDesc.IsNullable)
2769 base.Writer.Write(
", ");
2771 base.Writer.Write(
"true");
2772 base.Writer.Write(
")");
2774 base.Writer.WriteLine(
";");
2790 base.Writer.Write(
flag2 ?
"ReadXmlDocument(" :
"ReadXmlNode(");
2791 base.Writer.Write(element.
Any ?
"false" :
"true");
2792 base.Writer.Write(
")");
2794 base.Writer.WriteLine(
";");
2803 base.Writer.WriteLine(
" tser = GetXsiType();");
2804 base.Writer.Write(
"if (tser == null");
2805 base.Writer.Write(
" || ");
2807 base.Writer.WriteLine(
") {");
2808 base.Writer.Indent++;
2811 base.Writer.Write(
"ReadSerializable(( ");
2813 base.Writer.Write(
")");
2818 base.Writer.WriteLine(
", true");
2820 base.Writer.Write(
")");
2822 base.Writer.WriteLine(
";");
2825 base.Writer.Indent--;
2826 base.Writer.WriteLine(
"}");
2840 base.Writer.Write(
" = ");
2843 base.Writer.WriteLine(
";");
2855 base.Writer.Write(
"else if (tser == null");
2856 base.Writer.Write(
" || ");
2858 base.Writer.WriteLine(
") {");
2859 base.Writer.Indent++;
2865 base.Writer.Write(
"ReadSerializable(( ");
2867 base.Writer.Write(
")");
2871 base.Writer.WriteLine(
", true");
2873 base.Writer.Write(
")");
2875 base.Writer.WriteLine(
";");
2879 base.Writer.Write(
"throw CreateBadDerivationException(");
2881 base.Writer.Write(
", ");
2883 base.Writer.Write(
", ");
2885 base.Writer.Write(
", ");
2887 base.Writer.Write(
", ");
2889 base.Writer.Write(
", ");
2891 base.Writer.WriteLine(
");");
2897 base.Writer.Write(
"throw CreateMissingIXmlSerializableType(");
2899 base.Writer.Write(
", ");
2901 base.Writer.Write(
", ");
2903 base.Writer.WriteLine(
");");
2905 base.Writer.Indent--;
2906 base.Writer.WriteLine(
"}");
2913 base.Writer.WriteLine(
"Reader.MoveToContent();");
2914 base.Writer.Write(
"while (Reader.NodeType != ");
2916 base.Writer.Write(
".EndElement && Reader.NodeType != ");
2918 base.Writer.WriteLine(
".None) {");
2923 base.Writer.Indent--;
2924 base.Writer.WriteLine(
"}");
2929 base.Writer.Write(
"bool[] paramsRead = new bool[");
2931 base.Writer.WriteLine(
"];");
2936 base.Writer.WriteLine(
"Reader.MoveToContent();");
2937 base.Writer.Write(
"while (Reader.NodeType == ");
2939 base.Writer.WriteLine(
".Element) {");
2940 base.Writer.Indent++;
2941 base.Writer.Write(
"string root = Reader.GetAttribute(\"root\", \"");
2942 base.Writer.Write(
"http://schemas.xmlsoap.org/soap/encoding/");
2943 base.Writer.WriteLine(
"\");");
2944 base.Writer.Write(
"if (root == null || ");
2946 base.Writer.WriteLine(
".ToBoolean(root)) break;");
2947 base.Writer.WriteLine(
"ReadReferencedElement();");
2948 base.Writer.WriteLine(
"Reader.MoveToContent();");
2954 base.Writer.Write(
value ?
"true" :
"false");
2960 base.Writer.Write(
" ");
2962 base.Writer.Write(
" = new ");
2964 base.Writer.WriteLine(
"();");
2966 base.Writer.Write(
" ");
2968 base.Writer.Write(
"IsObject = new ");
2970 base.Writer.WriteLine(
"();");
2975 base.Writer.WriteLine(
"int isObjectIndex = 0;");
2976 base.Writer.Write(
"foreach (object obj in ");
2978 base.Writer.WriteLine(
") {");
2979 base.Writer.Indent++;
2980 base.Writer.WriteLine(
"bool isReferenced = true;");
2981 base.Writer.Write(
"bool isObject = (bool)");
2983 base.Writer.WriteLine(
"IsObject[isObjectIndex++];");
2984 base.Writer.WriteLine(
"object refObj = isObject ? obj : GetTarget((string)obj);");
2985 base.Writer.WriteLine(
"if (refObj == null) continue;");
2987 base.Writer.WriteLine(
" refObjType = refObj.GetType();");
2988 base.Writer.WriteLine(
"string refObjId = null;");
2990 base.Writer.WriteLine(
"if (isObject && isReferenced) Referenced(refObj); // need to mark this obj as ref'd since we didn't do GetTarget");
2991 base.Writer.Indent--;
2992 base.Writer.WriteLine(
"}");
2997 base.Writer.Write(
"if (Reader.GetAttribute(\"root\", \"");
2998 base.Writer.Write(
"http://schemas.xmlsoap.org/soap/encoding/");
2999 base.Writer.WriteLine(
"\") == \"0\") {");
3000 base.Writer.Indent++;
3002 base.Writer.Indent--;
3003 base.Writer.WriteLine(
"}");
3012 base.Writer.Write(
" ");
3014 base.Writer.WriteLine(
";");
3017 base.Writer.WriteLine(
"try {");
3018 base.Writer.Indent++;
3021 base.Writer.Write(
" = ");
3023 base.Writer.WriteLine(
";");
3027 base.Writer.Indent++;
3028 base.Writer.Write(
"throw CreateInaccessibleConstructorException(");
3030 base.Writer.WriteLine(
");");
3032 base.Writer.Indent++;
3033 base.Writer.Write(
"throw CreateCtorHasSecurityException(");
3035 base.Writer.WriteLine(
");");
3036 base.Writer.Indent--;
3037 base.Writer.WriteLine(
"}");
3043 base.Writer.Indent--;
3044 base.Writer.WriteLine(
"}");
3045 base.Writer.Write(
"catch (");
3047 base.Writer.WriteLine(
") {");
3053 base.Writer.Indent++;
3054 base.Writer.Write(
"throw CreateInvalidCastException(");
3056 base.Writer.Write(
", ");
3060 base.Writer.WriteLine(
", null);");
3064 base.Writer.Write(
", (string)");
3065 base.Writer.Write(
id);
3066 base.Writer.WriteLine(
");");
3068 base.Writer.Indent--;
3069 base.Writer.WriteLine(
"}");
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
virtual ICollection Values
virtual void Add(object key, object? value)
static readonly DBNull Value
static CultureInfo InvariantCulture
static string XmlInternalError
static string Format(string resourceFormat, object p1)
static string XmlMissingMethodEnum
static string XmlSequenceHierarchy
virtual bool IsAssignableFrom([NotNullWhen(true)] Type? c)
ChoiceIdentifierAccessor ChoiceIdentifier
ElementAccessor[] Elements
AttributeAccessor Attribute
static void CheckValidIdentifier([NotNull] string ident)
static string MakeValidInternal(string identifier)
static string GetCSharpName(string name)
SpecifiedAccessor CheckSpecified
static void WriteQuotedCSharpString(IndentedWriter writer, string value)
bool HasDefaultConstructor
static MemberMapping[] GetSettableMembers(StructMapping structMapping)
string ReferenceMapping(TypeMapping mapping)
static bool IsWildcard(SpecialMapping mapping)
void GenerateReferencedMethods()
void WriteQuotedCSharpString(string value)
CreateCollectionInfo(string name, TypeDesc td)
Member(XmlSerializationReaderCodeGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping)
Member(XmlSerializationReaderCodeGen outerClass, string source, string arrayName, int i, MemberMapping mapping, bool multiRef)
readonly string _arraySource
readonly string _choiceSource
readonly string _choiceArraySource
Member(XmlSerializationReaderCodeGen outerClass, string source, string arrayName, int i, MemberMapping mapping, string choiceSource)
Member(XmlSerializationReaderCodeGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping, bool multiRef, string choiceSource)
Member(XmlSerializationReaderCodeGen outerClass, string source, string arrayName, int i, MemberMapping mapping)
Member(XmlSerializationReaderCodeGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping, string choiceSource)
string CheckSpecifiedSource
string _checkSpecifiedSource
readonly MemberMapping _mapping
readonly string _arrayName
readonly string _choiceArrayName
void WriteAttributes(Member[] members, Member anyAttribute, string elseCall, string firstParam)
void WriteInitCheckTypeHrefList(string source)
void WriteDerivedTypes(StructMapping mapping, bool isTypedReturn, string returnTypeName)
void WriteWhileNotLoopStart()
string GetChoiceIdentifierSource(MemberMapping mapping, string parent, TypeDesc parentTypeDesc)
void WriteAddCollectionFixup(TypeDesc typeDesc, bool readOnly, string memberSource, string targetSource)
void WriteSourceBegin(string source)
void GenerateEnd(string[] methods, XmlMapping[] xmlMappings, Type[] types)
void WriteMemberBegin(Member[] members)
string GetArraySource(TypeDesc typeDesc, string arrayName)
void WriteNullableMethod(NullableMapping nullableMapping)
void WriteMemberElements(Member[] members, string elementElseString, string elseString, Member anyElement, Member anyText, string checkTypeHrefsSource)
void WriteIsStartTag(string name, string ns)
string MakeUnique(EnumMapping mapping, string name)
void WriteStructMethod(StructMapping structMapping)
readonly Hashtable _idNames
string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping)
void WriteMemberElementsCheckType(string checkTypeHrefsSource)
void WriteMemberElementsElse(Member anyElement, string elementElseString)
void WriteMemberElementsIf(Member[] members, Member anyElement, string elementElseString, string checkTypeSource)
void WriteEnumMethod(EnumMapping mapping)
void WriteBooleanValue(bool value)
string GetChoiceIdentifierSource(MemberMapping[] mappings, MemberMapping member)
XmlSerializationReaderCodeGen(IndentedWriter writer, TypeScope[] scopes, string access, string className)
void WriteSourceBeginTyped(string source, TypeDesc typeDesc)
void WriteCreateCollection(TypeDesc td, string source)
readonly Hashtable _createMethods
int _nextCreateMethodNumber
void WriteCreateMapping(TypeMapping mapping, string local)
string WriteHashtable(EnumMapping mapping, string typeName)
void WriteMemberEnd(Member[] members)
string GenerateElement(XmlMapping xmlMapping)
void WriteMemberText(Member anyText, string elseString)
void WriteMemberEnd(Member[] members, bool soapRefs)
bool IsSequence(Member[] members)
void WriteEncodedStructMethod(StructMapping structMapping)
void WriteLocalDecl(string typeFullName, string variableName, string initValue, bool useReflection)
void WriteXmlNodeEqual(string source, string name, string ns)
void WriteElement(string source, string arrayName, string choiceSource, ElementAccessor element, ChoiceIdentifierAccessor choice, string checkSpecified, bool checkForNull, bool readOnly, int fixupIndex, int elementIndex)
void WriteQNameEqual(string source, string name, string ns)
void WriteCatchException(Type exceptionType)
string NextMethodName(string name)
void WriteHandleHrefList(Member[] members, string listSource)
void WriteCatchCastException(TypeDesc typeDesc, string source, string id)
void InitializeValueTypes(string arrayName, MemberMapping[] mappings)
void WritePrimitive(TypeMapping mapping, string source)
string NextIdName(string name)
void WriteParamsRead(int length)
void WriteID(string name)
string ExpectedElements(Member[] members)
void WriteLiteralStructMethod(StructMapping structMapping)
string GetArraySource(TypeDesc typeDesc, string arrayName, bool multiRef)
void WriteIfNotSoapRoot(string source)
void WriteSourceEnd(string source)
override void GenerateMethod(TypeMapping mapping)
void WriteArray(string source, string arrayName, ArrayMapping arrayMapping, bool readOnly, bool isNullable, int fixupIndex)
string GenerateTypeElement(XmlTypeMapping xmlTypeMapping)
void WriteText(Member member)
bool WriteMemberFixupBegin(Member[] members, string fixupMethodName, string source)
void WriteCreateInstance(string escapedName, string source, bool useReflection, bool ctorInaccessible)
string GenerateEncodedMembersElement(XmlMembersMapping xmlMembersMapping)
void WriteCreateCollectionMethod(CreateCollectionInfo c)
void WriteAttribute(Member member)
void WriteDerivedSerializable(SerializableMapping head, SerializableMapping mapping, string source, bool isWrappedAny)
string GenerateMembersElement(XmlMembersMapping xmlMembersMapping)
void WriteFixupMethod(string fixupMethodName, Member[] members, string typeName, bool useReflection, bool typed, string source)
void WriteUnknownNode(string func, string node, ElementAccessor e, bool anyIfs)
void WriteArrayLocalDecl(string typeName, string variableName, string initValue, TypeDesc arrayTypeDesc)
void GenerateInitCallbacksMethod()
void WriteEnumAndArrayTypes()
delegate void XmlSerializationCollectionFixupCallback(object? collection, object? collectionItems)
delegate void XmlSerializationFixupCallback(object fixup)
delegate? object XmlSerializationReadCallback()
void AppendLiteral(string value)
void AppendFormatted(ReadOnlySpan< char > value)