public void ProxyForRefAndOutClassWithPrimitiveTypeParamsWhereInterceptorModifiesTheValues()
        {
            RefAndOutInterceptor interceptor = new RefAndOutInterceptor();

            RefAndOutClass proxy = (RefAndOutClass)
                                   _generator.CreateClassProxy(
                typeof(RefAndOutClass), interceptor);

            Assert.IsNotNull(proxy);

            int arg1 = -3;

            proxy.RefInt(ref arg1);
            Assert.AreEqual(98, arg1);

            int arg2;

            proxy.OutInt(out arg2);
            Assert.AreEqual(102, arg2);

            Assert.AreEqual("RefInt OutInt ", interceptor.LogContents);
        }
        public void ProxyForRefAndOutClassWithPrimitiveTypeParams()
        {
            LogInvokeInterceptor interceptor = new LogInvokeInterceptor();

            RefAndOutClass proxy = (RefAndOutClass)
                                   _generator.CreateClassProxy(
                typeof(RefAndOutClass), interceptor);

            Assert.IsNotNull(proxy);

            int int1 = -3;

            proxy.RefInt(ref int1);
            Assert.AreEqual(-2, int1);

            int int2;

            proxy.OutInt(out int2);
            Assert.AreEqual(2, int2);

            Assert.AreEqual("RefInt OutInt ", interceptor.LogContents);
        }