Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlWriterDelegator.cs
Go to the documentation of this file.
3using System.Xml;
4
6
7internal class XmlWriterDelegator
8{
9 protected XmlWriter writer;
10
12
13 internal int depth;
14
15 private int _prefixes;
16
17 internal XmlWriter Writer => writer;
18
20
21 internal string XmlLang => writer.XmlLang;
22
24
31
32 internal void Flush()
33 {
34 writer.Flush();
35 }
36
37 internal string LookupPrefix(string ns)
38 {
39 return writer.LookupPrefix(ns);
40 }
41
42 private void WriteEndAttribute()
43 {
45 }
46
47 internal void WriteEndElement()
48 {
50 depth--;
51 }
52
53 internal void WriteRaw(char[] buffer, int index, int count)
54 {
56 }
57
58 internal void WriteRaw(string data)
59 {
60 writer.WriteRaw(data);
61 }
62
64 {
65 if (dictionaryWriter != null)
66 {
67 if (ns != null)
68 {
70 }
71 }
72 else
73 {
75 }
76 }
77
78 internal void WriteXmlnsAttribute(string ns)
79 {
80 if (ns == null)
81 {
82 return;
83 }
84 if (ns.Length == 0)
85 {
86 writer.WriteAttributeString("xmlns", string.Empty, null, ns);
87 return;
88 }
89 if (dictionaryWriter != null)
90 {
92 return;
93 }
94 string text = writer.LookupPrefix(ns);
95 if (text == null)
96 {
99 handler.AppendLiteral("d");
100 handler.AppendFormatted(depth);
101 handler.AppendLiteral("p");
102 handler.AppendFormatted(_prefixes);
103 text = string.Create(invariantCulture, ref handler);
104 _prefixes++;
105 writer.WriteAttributeString("xmlns", text, null, ns);
106 }
107 }
108
110 {
111 if (dictionaryWriter != null)
112 {
114 }
115 else
116 {
117 writer.WriteAttributeString("xmlns", prefix, null, ns.Value);
118 }
119 }
120
121 private void WriteStartAttribute(string prefix, string localName, string ns)
122 {
123 writer.WriteStartAttribute(prefix, localName, ns);
124 }
125
126 private void WriteStartAttribute(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri)
127 {
128 if (dictionaryWriter != null)
129 {
130 dictionaryWriter.WriteStartAttribute(prefix, localName, namespaceUri);
131 }
132 else
133 {
134 writer.WriteStartAttribute(prefix, localName?.Value, namespaceUri?.Value);
135 }
136 }
137
138 internal void WriteAttributeString(string prefix, string localName, string ns, string value)
139 {
140 WriteStartAttribute(prefix, localName, ns);
143 }
144
151
152 private void WriteAttributeStringValue(string value)
153 {
155 }
156
163
165 {
166 if (dictionaryWriter == null)
167 {
168 writer.WriteString(value.Value);
169 }
170 else
171 {
173 }
174 }
175
182
184 {
186 }
187
194
196 {
198 }
199
207
208 private void WriteAttributeQualifiedNameValue(string name, string ns)
209 {
210 writer.WriteQualifiedName(name, ns);
211 }
212
220
222 {
223 if (dictionaryWriter == null)
224 {
225 writer.WriteQualifiedName(name.Value, ns.Value);
226 }
227 else
228 {
230 }
231 }
232
233 internal void WriteStartElement(string localName, string ns)
234 {
235 WriteStartElement(null, localName, ns);
236 }
237
238 internal virtual void WriteStartElement(string prefix, string localName, string ns)
239 {
240 writer.WriteStartElement(prefix, localName, ns);
241 depth++;
242 _prefixes = 1;
243 }
244
245 internal void WriteStartElement(XmlDictionaryString localName, XmlDictionaryString namespaceUri)
246 {
247 WriteStartElement(null, localName, namespaceUri);
248 }
249
250 internal void WriteStartElement(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri)
251 {
252 if (dictionaryWriter != null)
253 {
254 dictionaryWriter.WriteStartElement(prefix, localName, namespaceUri);
255 }
256 else
257 {
258 writer.WriteStartElement(prefix, localName?.Value, namespaceUri?.Value);
259 }
260 depth++;
261 _prefixes = 1;
262 }
263
265 {
266 if (dictionaryWriter != null)
267 {
268 dictionaryWriter.WriteStartElement(null, localName, namespaceUri);
269 }
270 else
271 {
272 writer.WriteStartElement(null, localName?.Value, namespaceUri?.Value);
273 }
274 }
275
277 {
279 }
280
282 {
284 }
285
290
291 internal void WriteAnyType(object value)
292 {
293 WriteAnyType(value, value.GetType());
294 }
295
296 internal void WriteAnyType(object value, Type valueType)
297 {
298 bool flag = true;
299 switch (valueType.GetTypeCode())
300 {
301 case TypeCode.Boolean:
302 WriteBoolean((bool)value);
303 break;
304 case TypeCode.Char:
305 WriteChar((char)value);
306 break;
307 case TypeCode.Byte:
309 break;
310 case TypeCode.Int16:
311 WriteShort((short)value);
312 break;
313 case TypeCode.Int32:
314 WriteInt((int)value);
315 break;
316 case TypeCode.Int64:
317 WriteLong((long)value);
318 break;
319 case TypeCode.Single:
320 WriteFloat((float)value);
321 break;
322 case TypeCode.Double:
323 WriteDouble((double)value);
324 break;
325 case TypeCode.Decimal:
326 WriteDecimal((decimal)value);
327 break;
328 case TypeCode.DateTime:
330 break;
331 case TypeCode.String:
332 WriteString((string)value);
333 break;
334 case TypeCode.SByte:
335 WriteSignedByte((sbyte)value);
336 break;
337 case TypeCode.UInt16:
338 WriteUnsignedShort((ushort)value);
339 break;
340 case TypeCode.UInt32:
341 WriteUnsignedInt((uint)value);
342 break;
343 case TypeCode.UInt64:
344 WriteUnsignedLong((ulong)value);
345 break;
346 default:
348 {
349 WriteBase64((byte[])value);
350 }
351 else if (!(valueType == Globals.TypeOfObject))
352 {
354 {
356 }
357 else if (valueType == Globals.TypeOfGuid)
358 {
360 }
361 else if (valueType == Globals.TypeOfUri)
362 {
364 }
366 {
368 }
369 else
370 {
371 flag = false;
372 }
373 }
374 break;
375 }
376 if (!flag)
377 {
379 }
380 }
381
382 internal void WriteExtensionData(IDataNode dataNode)
383 {
384 bool flag = true;
385 Type dataType = dataNode.DataType;
386 switch (Type.GetTypeCode(dataType))
387 {
388 case TypeCode.Boolean:
389 WriteBoolean(((DataNode<bool>)dataNode).GetValue());
390 break;
391 case TypeCode.Char:
392 WriteChar(((DataNode<char>)dataNode).GetValue());
393 break;
394 case TypeCode.Byte:
395 WriteUnsignedByte(((DataNode<byte>)dataNode).GetValue());
396 break;
397 case TypeCode.Int16:
398 WriteShort(((DataNode<short>)dataNode).GetValue());
399 break;
400 case TypeCode.Int32:
401 WriteInt(((DataNode<int>)dataNode).GetValue());
402 break;
403 case TypeCode.Int64:
404 WriteLong(((DataNode<long>)dataNode).GetValue());
405 break;
406 case TypeCode.Single:
407 WriteFloat(((DataNode<float>)dataNode).GetValue());
408 break;
409 case TypeCode.Double:
410 WriteDouble(((DataNode<double>)dataNode).GetValue());
411 break;
412 case TypeCode.Decimal:
413 WriteDecimal(((DataNode<decimal>)dataNode).GetValue());
414 break;
415 case TypeCode.DateTime:
416 WriteDateTime(((DataNode<DateTime>)dataNode).GetValue());
417 break;
418 case TypeCode.String:
419 WriteString(((DataNode<string>)dataNode).GetValue());
420 break;
421 case TypeCode.SByte:
422 WriteSignedByte(((DataNode<sbyte>)dataNode).GetValue());
423 break;
424 case TypeCode.UInt16:
425 WriteUnsignedShort(((DataNode<ushort>)dataNode).GetValue());
426 break;
427 case TypeCode.UInt32:
428 WriteUnsignedInt(((DataNode<uint>)dataNode).GetValue());
429 break;
430 case TypeCode.UInt64:
431 WriteUnsignedLong(((DataNode<ulong>)dataNode).GetValue());
432 break;
433 default:
434 if (dataType == Globals.TypeOfByteArray)
435 {
436 WriteBase64(((DataNode<byte[]>)dataNode).GetValue());
437 }
438 else if (dataType == Globals.TypeOfObject)
439 {
440 object value = dataNode.Value;
441 if (value != null)
442 {
444 }
445 }
446 else if (dataType == Globals.TypeOfTimeSpan)
447 {
448 WriteTimeSpan(((DataNode<TimeSpan>)dataNode).GetValue());
449 }
450 else if (dataType == Globals.TypeOfGuid)
451 {
452 WriteGuid(((DataNode<Guid>)dataNode).GetValue());
453 }
454 else if (dataType == Globals.TypeOfUri)
455 {
456 WriteUri(((DataNode<Uri>)dataNode).GetValue());
457 }
458 else if (dataType == Globals.TypeOfXmlQualifiedName)
459 {
460 WriteQName(((DataNode<XmlQualifiedName>)dataNode).GetValue());
461 }
462 else
463 {
464 flag = false;
465 }
466 break;
467 }
468 if (!flag)
469 {
471 }
472 }
473
474 internal void WriteString(string value)
475 {
477 }
478
479 internal virtual void WriteBoolean(bool value)
480 {
482 }
483
490
491 internal virtual void WriteDateTime(DateTime value)
492 {
494 }
495
502
503 internal virtual void WriteDecimal(decimal value)
504 {
506 }
507
514
515 internal virtual void WriteDouble(double value)
516 {
518 }
519
526
527 internal virtual void WriteInt(int value)
528 {
530 }
531
538
539 internal virtual void WriteLong(long value)
540 {
542 }
543
550
551 internal virtual void WriteFloat(float value)
552 {
554 }
555
562
563 internal virtual void WriteBase64(byte[] bytes)
564 {
565 if (bytes != null)
566 {
567 writer.WriteBase64(bytes, 0, bytes.Length);
568 }
569 }
570
571 internal virtual void WriteShort(short value)
572 {
574 }
575
582
583 internal virtual void WriteUnsignedByte(byte value)
584 {
586 }
587
594
595 internal virtual void WriteSignedByte(sbyte value)
596 {
598 }
599
606
607 internal virtual void WriteUnsignedInt(uint value)
608 {
610 }
611
618
619 internal virtual void WriteUnsignedLong(ulong value)
620 {
622 }
623
630
631 internal virtual void WriteUnsignedShort(ushort value)
632 {
634 }
635
642
643 internal virtual void WriteChar(char value)
644 {
646 }
647
654
659
666
673
674 internal void WriteGuid(Guid value)
675 {
676 writer.WriteRaw(value.ToString());
677 }
678
685
686 internal void WriteUri(Uri value)
687 {
688 writer.WriteString(value?.GetComponents(UriComponents.SerializationInfoString, UriFormat.UriEscaped));
689 }
690
697
698 internal virtual void WriteQName(XmlQualifiedName value)
699 {
701 {
702 WriteXmlnsAttribute(value.Namespace);
703 WriteQualifiedName(value.Name, value.Namespace);
704 }
705 }
706
707 internal void WriteQualifiedName(string localName, string ns)
708 {
709 writer.WriteQualifiedName(localName, ns);
710 }
711
713 {
714 if (dictionaryWriter == null)
715 {
716 writer.WriteQualifiedName(localName.Value, ns.Value);
717 }
718 else
719 {
721 }
722 }
723
725 {
726 if (dictionaryWriter == null)
727 {
728 for (int i = 0; i < value.Length; i++)
729 {
731 }
732 }
733 else
734 {
736 }
737 }
738
740 {
741 if (dictionaryWriter == null)
742 {
743 for (int i = 0; i < value.Length; i++)
744 {
746 }
747 }
748 else
749 {
751 }
752 }
753
755 {
756 if (dictionaryWriter == null)
757 {
758 for (int i = 0; i < value.Length; i++)
759 {
761 }
762 }
763 else
764 {
766 }
767 }
768
770 {
771 if (dictionaryWriter == null)
772 {
773 for (int i = 0; i < value.Length; i++)
774 {
776 }
777 }
778 else
779 {
781 }
782 }
783
785 {
786 if (dictionaryWriter == null)
787 {
788 for (int i = 0; i < value.Length; i++)
789 {
791 }
792 }
793 else
794 {
796 }
797 }
798
800 {
801 if (dictionaryWriter == null)
802 {
803 for (int i = 0; i < value.Length; i++)
804 {
806 }
807 }
808 else
809 {
811 }
812 }
813
815 {
816 if (dictionaryWriter == null)
817 {
818 for (int i = 0; i < value.Length; i++)
819 {
821 }
822 }
823 else
824 {
826 }
827 }
828}
static CultureInfo InvariantCulture
static string GetClrTypeFullName(Type type)
static void CheckNull(object obj, string name)
void WriteAttributeBool(string prefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, bool value)
void WriteAttributeInt(string prefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, int value)
void WriteAttributeString(string prefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, string value)
void WriteAttributeQualifiedNameValue(XmlDictionaryString name, XmlDictionaryString ns)
void WriteQualifiedName(string localName, string ns)
void WriteUri(Uri value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteStartElement(string localName, string ns)
void WriteInt32Array(int[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteUnsignedInt(uint value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteAttributeQualifiedNameValue(string name, string ns)
void WriteStartElement(XmlDictionaryString localName, XmlDictionaryString namespaceUri)
void WriteXmlnsAttribute(string prefix, XmlDictionaryString ns)
void WriteRaw(char[] buffer, int index, int count)
void WriteInt64Array(long[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteDouble(double value, XmlDictionaryString name, XmlDictionaryString ns)
virtual void WriteStartElement(string prefix, string localName, string ns)
void WriteStartAttribute(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri)
virtual void WriteQName(XmlQualifiedName value)
void WriteDecimal(decimal value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteSingleArray(float[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteDecimalArray(decimal[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteGuid(Guid value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteTimeSpan(TimeSpan value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteFloat(float value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteStartElement(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri)
void WriteBoolean(bool value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteUnsignedLong(ulong value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteAttributeString(string prefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, XmlDictionaryString value)
void WriteQualifiedName(XmlDictionaryString localName, XmlDictionaryString ns)
void WriteDateTime(DateTime value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteUnsignedShort(ushort value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteSignedByte(sbyte value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteAttributeQualifiedName(string attrPrefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, string name, string ns)
void WriteTimeSpan(char value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteAttributeStringValue(XmlDictionaryString value)
void WriteDateTimeArray(DateTime[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteAnyType(object value, Type valueType)
void WriteChar(char value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteUnsignedByte(byte value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteStartElementPrimitive(XmlDictionaryString localName, XmlDictionaryString namespaceUri)
void WriteDoubleArray(double[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteStartAttribute(string prefix, string localName, string ns)
void WriteLong(long value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteShort(short value, XmlDictionaryString name, XmlDictionaryString ns)
void WriteAttributeString(string prefix, string localName, string ns, string value)
void WriteBooleanArray(bool[] value, XmlDictionaryString itemName, XmlDictionaryString itemNamespace)
void WriteAttributeQualifiedName(string attrPrefix, XmlDictionaryString attrName, XmlDictionaryString attrNs, XmlDictionaryString name, XmlDictionaryString ns)
void WriteInt(int value, XmlDictionaryString name, XmlDictionaryString ns)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string InvalidPrimitiveType_Serialization
Definition SR.cs:158
Definition SR.cs:7
static TypeCode GetTypeCode(Type? type)
Definition Type.cs:919
static string ToString(bool value)
void WriteStartElement(XmlDictionaryString localName, XmlDictionaryString? namespaceUri)
virtual void WriteString(XmlDictionaryString? value)
virtual void WriteXmlnsAttribute(string? prefix, string namespaceUri)
virtual void WriteQualifiedName(XmlDictionaryString localName, XmlDictionaryString? namespaceUri)
void WriteStartAttribute(XmlDictionaryString localName, XmlDictionaryString? namespaceUri)
virtual void WriteArray(string? prefix, string localName, string? namespaceUri, bool[] array, int offset, int count)
static readonly XmlQualifiedName Empty
void WriteString(string? text)
string? LookupPrefix(string ns)
void WriteBase64(byte[] buffer, int index, int count)
virtual void WriteQualifiedName(string localName, string? ns)
Definition XmlWriter.cs:132
virtual ? string XmlLang
Definition XmlWriter.cs:20
void WriteRaw(char[] buffer, int index, int count)
virtual void WriteValue(object value)
Definition XmlWriter.cs:147
WriteState WriteState
Definition XmlWriter.cs:16
virtual XmlSpace XmlSpace
Definition XmlWriter.cs:18
void WriteStartAttribute(string localName, string? ns)
Definition XmlWriter.cs:67
void WriteAttributeString(string localName, string? ns, string? value)
Definition XmlWriter.cs:46
void WriteStartElement(string localName, string? ns)
Definition XmlWriter.cs:30
TypeCode
Definition TypeCode.cs:4
UriFormat
Definition UriFormat.cs:4