public void ProxyFactoryTest()
        {
            AdaptiveFactory <ProxyBase> proxyFactory = AdaptiveFactory.CreateProxyFactory <ProxyBase>("Target");

            Assert.AreEqual(1, proxyFactory.MethodHandlers.Count);
            Assert.AreEqual(0, proxyFactory.PropertyHandlers.Count);
            Assert.AreEqual(0, proxyFactory.EventHandlers.Count);

            Target  target = new Target();
            ITarget proxy  = (ITarget)Activator.CreateInstance(proxyFactory.Implement <ITarget>(), target);

            Assert.IsNotNull(proxy);

            Assert.AreEqual(5, proxy.Add(2, 3));
            target.Value = 42;
            Assert.AreEqual(42, proxy.Value);
            proxy.Value = 21;
            Assert.AreEqual(21, target.Value);
        }