public unsafe void IntRead() { byte[] data; using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(ms)) for (int count = 0; count < 256; count++) { writer.Write(count); } data = ms.ToArray(); } fixed(byte *pData = data) { UnsafeBinaryMemoryReader reader = new UnsafeBinaryMemoryReader(pData); for (int count = 0; count < 256; count++) { Assert.AreEqual(reader.ReadInt32(), count, "UnsafeBinaryMemoryReader Int incompatible to BinaryWriter."); } } }
public unsafe void MixedRead() { byte[] data; using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(ms)) { writer.Write("abcABCäöüÄÖÜßáÁàÀ♥♦♣♠"); writer.Write((byte)66); writer.Write(0x48484848); writer.Write(0x84848484U); writer.Write("abcABCäöüÄÖÜßáÁàÀ♥♦♣♠"); } data = ms.ToArray(); } fixed(byte *pData = data) { UnsafeBinaryMemoryReader reader = new UnsafeBinaryMemoryReader(pData); Assert.AreEqual(reader.ReadString(), "abcABCäöüÄÖÜßáÁàÀ♥♦♣♠", "BinaryMemoryReader String incompatible to BinaryReader."); Assert.AreEqual(reader.ReadByte(), (byte)66, "BinaryMemoryReader Byte incompatible to BinaryReader."); Assert.AreEqual(reader.ReadInt32(), 0x48484848, "BinaryMemoryReader Int incompatible to BinaryReader."); Assert.AreEqual(reader.ReadUInt32(), 0x84848484U, "BinaryMemoryReader UInt incompatible to BinaryReader."); Assert.AreEqual(reader.ReadString(), "abcABCäöüÄÖÜßáÁàÀ♥♦♣♠", "BinaryMemoryReader 2nd String incompatible to BinaryReader."); } }