/// <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; }