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