コード例 #1
0
        public void TestTableLengthWrite()
        {
            var t = new Hashtable
            {
                ["abc"] = "def"
            };

            int bytesNeeded = WireFormatting.GetTableByteCount(t);

            byte[] memory = new byte[bytesNeeded];
            var    writer = new MethodArgumentWriter(memory);

            writer.WriteTable(t);
            Assert.AreEqual(bytesNeeded, writer.Offset);
            Check(memory, new byte[] { 0x00, 0x00, 0x00, 0x0C,
                                       0x03, 0x61, 0x62, 0x63,
                                       0x53, 0x00, 0x00, 0x00,
                                       0x03, 0x64, 0x65, 0x66 });
        }
コード例 #2
0
        public void TestNestedTableWrite()
        {
            Hashtable t = new Hashtable();
            Hashtable x = new Hashtable
            {
                ["y"] = 0x12345678
            };

            t["x"] = x;
            int bytesNeeded = WireFormatting.GetTableByteCount(t);
            var writer      = new MethodArgumentWriter(new byte[bytesNeeded]);

            writer.WriteTable(t);
            Assert.AreEqual(bytesNeeded, writer.Offset);
            Check(writer, new byte[] { 0x00, 0x00, 0x00, 0x0E,
                                       0x01, 0x78, 0x46, 0x00,
                                       0x00, 0x00, 0x07, 0x01,
                                       0x79, 0x49, 0x12, 0x34,
                                       0x56, 0x78 });
        }
コード例 #3
0
 public byte[] Contents(MethodArgumentWriter w)
 {
     return(w.Memory.Slice(0, w.Offset).ToArray());
 }
コード例 #4
0
 public void SetUp()
 {
     m_w = Writer();
 }
コード例 #5
0
 public byte[] Contents(MethodArgumentWriter w)
 {
     return(((MemoryStream)w.BaseWriter.BaseStream).ToArray());
 }