public void Encoding() { var call = MethodCall.FromExpression((TestClass test) => test.FirstMethod(Arg1, Arg2, Arg3, Arg4)); using (var stream = new MemoryStream()) using (var reader = new BinaryReader(stream)) using (var writer = new BinaryWriter(stream)) { call.WriteTo(writer); var length = stream.Position; stream.Seek(0, SeekOrigin.Begin); var readCall = MethodCall.ReadFrom(reader); Assert.That(readCall.Method, Is.EqualTo(call.Method)); Assert.That(readCall.Arguments, Is.EquivalentTo(call.Arguments)); Assert.That(stream.Position, Is.EqualTo(length)); } }