/// <summary>
        /// 
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="service"></param>
        /// <returns></returns>
        public IInterceptedComponent CreateInterceptedComponent(object instance, Type service)
        {
            AssertUtil.ArgumentNotNull(instance, "instance");
            AssertUtil.ArgumentNotNull(service, "service");
            AssertUtil.ArgumentMustBeInterface(service, "service");

            InterceptedComponent intercepted = new InterceptedComponent(instance);

            object proxy = ProxyGenerator.CreateProxy(service, new InterceptorInvocationHandler(intercepted) );
            intercepted.SetProxiedInstance(proxy);

            return intercepted;
        }