public void Using()
        {
            var disposable = new Disposable();

            var d = Expression.Parameter(typeof(Disposable), "d");

            var disposer = Expression.Lambda <Action <Disposable> >(
                ExpressionEx.Using(
                    d,
                    Expression.Block(
                        Expression.Call(d, typeof(Disposable).GetMethod("Touch")))),
                d).Compile();

            Assert.False(disposable.Touched);
            Assert.False(disposable.Disposed);

            disposer(disposable);

            Assert.True(disposable.Touched);
            Assert.True(disposable.Disposed);
        }