示例#1
0
        public void WritesArrays(byte[] items, byte[] encoding)
        {
            var stream = new MemoryStream();

            var output    = Expression.Parameter(typeof(Stream));
            var item      = Expression.Variable(typeof(byte));
            var writeItem = Expression.Call(output, typeof(Stream).GetMethod(nameof(Stream.WriteByte)), item);
            var write     = (Action <Stream>)Expression.Lambda(Codec.WriteArray(Expression.Constant(items), item, writeItem, output), new[] { output }).Compile();

            using (stream)
            {
                write(stream);
            }

            Assert.Equal(encoding, stream.ToArray());
        }