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

◆ WriteValue()

void System.Resources.ResourceWriter.WriteValue ( System::Resources::ResourceTypeCode typeCode,
object value,
BinaryWriter writer )
inlineprivate

Definition at line 430 of file ResourceWriter.cs.

431 {
432 switch (typeCode)
433 {
434 case System.Resources.ResourceTypeCode.String:
435 writer.Write((string)value);
436 break;
437 case System.Resources.ResourceTypeCode.Boolean:
438 writer.Write((bool)value);
439 break;
440 case System.Resources.ResourceTypeCode.Char:
441 writer.Write((ushort)(char)value);
442 break;
443 case System.Resources.ResourceTypeCode.Byte:
444 writer.Write((byte)value);
445 break;
446 case System.Resources.ResourceTypeCode.SByte:
447 writer.Write((sbyte)value);
448 break;
449 case System.Resources.ResourceTypeCode.Int16:
450 writer.Write((short)value);
451 break;
452 case System.Resources.ResourceTypeCode.UInt16:
453 writer.Write((ushort)value);
454 break;
455 case System.Resources.ResourceTypeCode.Int32:
456 writer.Write((int)value);
457 break;
458 case System.Resources.ResourceTypeCode.UInt32:
459 writer.Write((uint)value);
460 break;
461 case System.Resources.ResourceTypeCode.Int64:
462 writer.Write((long)value);
463 break;
464 case System.Resources.ResourceTypeCode.UInt64:
465 writer.Write((ulong)value);
466 break;
467 case System.Resources.ResourceTypeCode.Single:
468 writer.Write((float)value);
469 break;
470 case System.Resources.ResourceTypeCode.Double:
471 writer.Write((double)value);
472 break;
473 case System.Resources.ResourceTypeCode.Decimal:
474 writer.Write((decimal)value);
475 break;
476 case System.Resources.ResourceTypeCode.DateTime:
477 {
478 long value2 = ((DateTime)value).ToBinary();
479 writer.Write(value2);
480 break;
481 }
482 case System.Resources.ResourceTypeCode.TimeSpan:
483 writer.Write(((TimeSpan)value).Ticks);
484 break;
485 case System.Resources.ResourceTypeCode.ByteArray:
486 {
487 byte[] array3 = (byte[])value;
488 writer.Write(array3.Length);
489 writer.Write(array3, 0, array3.Length);
490 break;
491 }
492 case System.Resources.ResourceTypeCode.Stream:
493 {
494 StreamWrapper streamWrapper = (StreamWrapper)value;
495 if (streamWrapper.Stream.GetType() == typeof(MemoryStream))
496 {
498 if (memoryStream.Length > int.MaxValue)
499 {
501 }
502 byte[] array = memoryStream.ToArray();
503 writer.Write(array.Length);
504 writer.Write(array, 0, array.Length);
505 break;
506 }
507 Stream stream = streamWrapper.Stream;
508 if (stream.Length > int.MaxValue)
509 {
511 }
512 stream.Position = 0L;
513 writer.Write((int)stream.Length);
514 byte[] array2 = new byte[4096];
515 int num = 0;
516 while ((num = stream.Read(array2, 0, array2.Length)) != 0)
517 {
518 writer.Write(array2, 0, num);
519 }
520 if (streamWrapper.CloseAfterWrite)
521 {
522 stream.Close();
523 }
524 break;
525 }
526 default:
527 throw new PlatformNotSupportedException(System.SR.NotSupported_BinarySerializedResources);
528 case System.Resources.ResourceTypeCode.Null:
529 break;
530 }
531 }
static string NotSupported_BinarySerializedResources
Definition SR.cs:20
static string ArgumentOutOfRange_StreamLength
Definition SR.cs:1110
Definition SR.cs:7

References System.SR.ArgumentOutOfRange_StreamLength, System.array, System.Resources.DateTime, System.L, System.SR.NotSupported_BinarySerializedResources, System.stream, System.value, and System.writer.

Referenced by System.Resources.ResourceWriter.Generate().