1655 {
1658 if (element.Mapping
is NullableMapping)
1659 {
1660 base.Writer.Write(
"if (");
1662 base.Writer.WriteLine(
" != null) {");
1663 base.Writer.Indent++;
1664 string cSharpName = element.Mapping.TypeDesc.BaseTypeDesc.CSharpName;
1666 if (!element.Mapping.TypeDesc.BaseTypeDesc.UseReflection)
1667 {
1669 }
1673 base.Writer.Indent--;
1674 base.Writer.WriteLine(
"}");
1675 if (element.IsNullable)
1676 {
1677 base.Writer.WriteLine(
"else {");
1678 base.Writer.Indent++;
1680 base.Writer.Indent--;
1681 base.Writer.WriteLine(
"}");
1682 }
1683 }
1684 else if (element.Mapping
is ArrayMapping)
1685 {
1686 ArrayMapping
arrayMapping = (ArrayMapping)element.Mapping;
1688 {
1689 base.Writer.Write(
"WritePotentiallyReferencingElement(");
1691 base.Writer.Write(
", ");
1693 base.Writer.Write(
", ");
1696 {
1697 base.Writer.Write(
", ");
1699 base.Writer.Write(
", true, ");
1700 }
1701 else
1702 {
1703 base.Writer.Write(
", null, false, ");
1704 }
1706 base.Writer.WriteLine(
");");
1707 return;
1708 }
1709 if (element.IsUnbounded)
1710 {
1715 base.Writer.WriteLine(
"{");
1716 base.Writer.Indent++;
1718 if (element.IsNullable)
1719 {
1721 }
1722 else
1723 {
1725 {
1726 base.Writer.Write(
"if (");
1728 base.Writer.Write(
" != null)");
1729 }
1730 base.Writer.WriteLine(
"{");
1731 base.Writer.Indent++;
1732 }
1733 base.Writer.Write(
"for (int ");
1735 base.Writer.Write(
" = 0; ");
1737 base.Writer.Write(
" < ");
1739 {
1741 base.Writer.Write(
".Length");
1742 }
1743 else
1744 {
1745 base.Writer.Write(
"((");
1747 base.Writer.Write(
")");
1749 base.Writer.Write(
").Count");
1750 }
1751 base.Writer.Write(
"; ");
1753 base.Writer.WriteLine(
"++) {");
1754 base.Writer.Indent++;
1758 base.Writer.Indent--;
1759 base.Writer.WriteLine(
"}");
1760 base.Writer.Indent--;
1761 base.Writer.WriteLine(
"}");
1762 base.Writer.Indent--;
1763 base.Writer.WriteLine(
"}");
1764 return;
1765 }
1767 base.Writer.WriteLine(
"{");
1768 base.Writer.Indent++;
1770 if (element.IsNullable)
1771 {
1773 }
1774 else
1775 {
1777 {
1778 base.Writer.Write(
"if (");
1780 base.Writer.Write(
" != null)");
1781 }
1782 base.Writer.WriteLine(
"{");
1783 base.Writer.Indent++;
1784 }
1788 base.Writer.Indent--;
1789 base.Writer.WriteLine(
"}");
1790 base.Writer.Indent--;
1791 base.Writer.WriteLine(
"}");
1792 }
1793 else if (element.Mapping
is EnumMapping)
1794 {
1795 if (element.Mapping.IsSoap)
1796 {
1797 string s = (
string)
base.MethodNames[element.Mapping];
1798 base.Writer.Write(
"Writer.WriteStartElement(");
1800 base.Writer.Write(
", ");
1802 base.Writer.WriteLine(
");");
1803 base.Writer.Write(
s);
1804 base.Writer.Write(
"(");
1806 base.Writer.WriteLine(
");");
1808 }
1809 else
1810 {
1812 }
1813 }
1814 else if (element.Mapping
is PrimitiveMapping)
1815 {
1818 {
1820 return;
1821 }
1825 }
1826 else if (element.Mapping
is StructMapping)
1827 {
1828 StructMapping
structMapping = (StructMapping)element.Mapping;
1830 {
1831 base.Writer.Write(
"WritePotentiallyReferencingElement(");
1833 base.Writer.Write(
", ");
1835 base.Writer.Write(
", ");
1838 {
1839 base.Writer.Write(
", ");
1841 base.Writer.Write(
", true, ");
1842 }
1843 else
1844 {
1845 base.Writer.Write(
", null, false, ");
1846 }
1848 }
1849 else
1850 {
1853 base.Writer.Write(
"(");
1855 base.Writer.Write(
", ");
1857 {
1858 base.Writer.Write(
"null");
1859 }
1860 else
1861 {
1863 }
1864 base.Writer.Write(
", ");
1867 {
1868 base.Writer.Write(
", ");
1870 }
1871 base.Writer.Write(
", false");
1872 }
1873 base.Writer.WriteLine(
");");
1874 }
1875 else
1876 {
1877 if (!(element.Mapping
is SpecialMapping))
1878 {
1880 }
1881 if (element.Mapping
is SerializableMapping)
1882 {
1884 return;
1885 }
1886 base.Writer.Write(
"if ((");
1888 base.Writer.Write(
") is ");
1890 base.Writer.Write(
" || ");
1892 base.Writer.Write(
" == null");
1893 base.Writer.WriteLine(
") {");
1894 base.Writer.Indent++;
1896 base.Writer.Indent--;
1897 base.Writer.WriteLine(
"}");
1898 base.Writer.WriteLine(
"else {");
1899 base.Writer.Indent++;
1900 base.Writer.Write(
"throw CreateInvalidAnyTypeException(");
1902 base.Writer.WriteLine(
");");
1903 base.Writer.Indent--;
1904 base.Writer.WriteLine(
"}");
1905 }
1906 }
static string XmlInternalError
string ReferenceMapping(TypeMapping mapping)
void WriteQuotedCSharpString(string value)
void WriteArrayLocalDecl(string typeName, string variableName, string initValue, TypeDesc arrayTypeDesc)
void WriteNullCheckBegin(string source, ElementAccessor element)
void WriteArrayItems(ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc arrayTypeDesc, string arrayName, string choiceName)
void WriteQualifiedNameElement(string name, string ns, object defaultValue, string source, bool nullable, bool IsSoap, TypeMapping mapping)
void WriteElementCall(string func, Type cast, string source, string name, string ns, bool isNullable, bool isAny)
void WriteValue(object value)
void WriteElement(string source, ElementAccessor element, string arrayName, bool writeAccessor)
void WritePrimitive(string method, string name, string ns, object defaultValue, string source, TypeMapping mapping, bool writeXsiType, bool isElement, bool isNullable)
void WriteStartElement(string name, string ns, bool writePrefixed)
void WriteLiteralNullTag(string name, string ns)
@ InvalidOperationException