/// <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;
        }
 /// <summary>
 /// Constructs an InterceptorInvocationHandler
 /// </summary>
 /// <param name="interceptedComponent"></param>
 public InterceptorInvocationHandler(InterceptedComponent interceptedComponent)
 {
     AssertUtil.ArgumentNotNull( interceptedComponent, "interceptedComponent" );
     m_interceptedComponent = interceptedComponent;
 }