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

◆ WriteValue()

void System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteValue ( object value)
inlineprivate

Definition at line 1992 of file XmlSerializationWriterCodeGen.cs.

1993 {
1994 if (value == null)
1995 {
1996 base.Writer.Write("null");
1997 return;
1998 }
1999 Type type = value.GetType();
2000 if (type == typeof(string))
2001 {
2002 string value2 = (string)value;
2004 }
2005 else if (type == typeof(char))
2006 {
2007 base.Writer.Write('\'');
2008 char c = (char)value;
2009 if (c == '\'')
2010 {
2011 base.Writer.Write("'");
2012 }
2013 else
2014 {
2015 base.Writer.Write(c);
2016 }
2017 base.Writer.Write('\'');
2018 }
2019 else if (type == typeof(int))
2020 {
2021 base.Writer.Write(((int)value).ToString(null, NumberFormatInfo.InvariantInfo));
2022 }
2023 else if (type == typeof(double))
2024 {
2025 if (double.IsNaN((double)value))
2026 {
2027 base.Writer.Write("System.Double.NaN");
2028 }
2029 else if (double.IsPositiveInfinity((double)value))
2030 {
2031 base.Writer.Write("System.Double.PositiveInfinity");
2032 }
2033 else if (double.IsNegativeInfinity((double)value))
2034 {
2035 base.Writer.Write("System.Double.NegativeInfinity");
2036 }
2037 else
2038 {
2039 base.Writer.Write(((double)value).ToString("R", NumberFormatInfo.InvariantInfo));
2040 }
2041 }
2042 else if (type == typeof(bool))
2043 {
2044 base.Writer.Write(((bool)value) ? "true" : "false");
2045 }
2046 else if (type == typeof(short) || type == typeof(long) || type == typeof(ushort) || type == typeof(uint) || type == typeof(ulong) || type == typeof(byte) || type == typeof(sbyte))
2047 {
2048 base.Writer.Write("(");
2049 base.Writer.Write(type.FullName);
2050 base.Writer.Write(")");
2051 base.Writer.Write("(");
2052 base.Writer.Write(Convert.ToString(value, NumberFormatInfo.InvariantInfo));
2053 base.Writer.Write(")");
2054 }
2055 else if (type == typeof(float))
2056 {
2057 if (float.IsNaN((float)value))
2058 {
2059 base.Writer.Write("System.Single.NaN");
2060 return;
2061 }
2062 if (float.IsPositiveInfinity((float)value))
2063 {
2064 base.Writer.Write("System.Single.PositiveInfinity");
2065 return;
2066 }
2067 if (float.IsNegativeInfinity((float)value))
2068 {
2069 base.Writer.Write("System.Single.NegativeInfinity");
2070 return;
2071 }
2072 base.Writer.Write(((float)value).ToString("R", NumberFormatInfo.InvariantInfo));
2073 base.Writer.Write("f");
2074 }
2075 else if (type == typeof(decimal))
2076 {
2077 base.Writer.Write(((decimal)value).ToString(null, NumberFormatInfo.InvariantInfo));
2078 base.Writer.Write("m");
2079 }
2080 else if (type == typeof(DateTime))
2081 {
2082 base.Writer.Write(" new ");
2083 base.Writer.Write(type.FullName);
2084 base.Writer.Write("(");
2085 base.Writer.Write(((DateTime)value).Ticks.ToString(CultureInfo.InvariantCulture));
2086 base.Writer.Write(")");
2087 }
2088 else if (type == typeof(DateTimeOffset))
2089 {
2090 base.Writer.Write(" new ");
2091 base.Writer.Write(type.FullName);
2092 base.Writer.Write("(");
2093 base.Writer.Write(((DateTimeOffset)value).Ticks.ToString(CultureInfo.InvariantCulture));
2094 base.Writer.Write(", new ");
2095 base.Writer.Write(((DateTimeOffset)value).Offset.GetType().FullName);
2096 base.Writer.Write("(");
2097 base.Writer.Write(((DateTimeOffset)value).Offset.Ticks.ToString(CultureInfo.InvariantCulture));
2098 base.Writer.Write("))");
2099 }
2100 else if (type == typeof(TimeSpan))
2101 {
2102 base.Writer.Write(" new ");
2103 base.Writer.Write(type.FullName);
2104 base.Writer.Write("(");
2105 base.Writer.Write(((TimeSpan)value).Ticks.ToString(CultureInfo.InvariantCulture));
2106 base.Writer.Write(")");
2107 }
2108 else
2109 {
2110 if (!type.IsEnum)
2111 {
2113 }
2114 base.Writer.Write(((int)value).ToString(null, NumberFormatInfo.InvariantInfo));
2115 }
2116 }
static CultureInfo InvariantCulture
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlUnsupportedDefaultType
Definition SR.cs:1516
Definition SR.cs:7

References System.Xml.Dictionary, System.SR.Format(), System.Type.GetType(), System.Globalization.CultureInfo.InvariantCulture, System.Globalization.NumberFormatInfo.InvariantInfo, System.Convert.ToString(), System.ToString, System.type, System.value, System.Xml.Serialization.XmlSerializationCodeGen.WriteQuotedCSharpString(), and System.SR.XmlUnsupportedDefaultType.

Referenced by System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteCheckDefault(), System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteElement(), and System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteElementCall().