BinaryWriterExtensions
using System.Collections.Generic;
using System.Private.Windows.Core.BinaryFormat;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
namespace System.IO
{
[NullableContext(1)]
[Nullable(0)]
internal static class BinaryWriterExtensions
{
public static void Write(this BinaryWriter writer, DateTime value)
{
long value2 = Unsafe.As<DateTime, long>(ref value);
writer.Write(value2);
}
internal static void Write(this BinaryWriter writer, IReadOnlyList<MemberTypeInfo> memberTypeInfo)
{
MemberTypeInfo memberTypeInfo2;
for (int i = 0; i < memberTypeInfo.Count; i++) {
memberTypeInfo2 = memberTypeInfo[i];
writer.Write((byte)memberTypeInfo2.Type);
}
for (int j = 0; j < memberTypeInfo.Count; j++) {
memberTypeInfo2 = memberTypeInfo[j];
switch (memberTypeInfo2.Type) {
case BinaryType.Primitive:
case BinaryType.PrimitiveArray:
memberTypeInfo2 = memberTypeInfo[j];
writer.Write((byte)memberTypeInfo2.Info);
break;
case BinaryType.SystemClass:
memberTypeInfo2 = memberTypeInfo[j];
writer.Write((string)memberTypeInfo2.Info);
break;
case BinaryType.Class:
memberTypeInfo2 = memberTypeInfo[j];
((ClassTypeInfo)memberTypeInfo2.Info).Write(writer);
break;
default:
throw new SerializationException("Unexpected binary type.");
case BinaryType.String:
case BinaryType.Object:
case BinaryType.ObjectArray:
case BinaryType.StringArray:
break;
}
}
}
}
}