/// <summary>
 /// Initializes a new instance of the <see cref="InterceptingProxyFactory"/> class.
 /// </summary>
 /// <param name="instanceDynamicProxyGenerator">The instance dynamic proxy generator.</param>
 /// <param name="typeDynamicProxyGenerator">The type dynamic proxy generator.</param>
 /// <param name="interceptorResolver">The interceptor collector.</param>
 /// <param name="serviceProvider">The service provider.</param>
 /// <exception cref="ArgumentNullException">Specified <paramref name="instanceDynamicProxyGenerator"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="typeDynamicProxyGenerator"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="interceptorResolver"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="serviceProvider"/> is null.</exception>
 public InterceptingProxyFactory(
     IInstanceDynamicProxyGenerator instanceDynamicProxyGenerator,
     ITypeDynamicProxyGenerator typeDynamicProxyGenerator,
     IInterceptorResolver interceptorResolver,
     IServiceProvider serviceProvider) : base(interceptorResolver, serviceProvider)
 {
     InstanceDynamicProxyGenerator = Guard.ArgumentNotNull(instanceDynamicProxyGenerator, nameof(instanceDynamicProxyGenerator));
     TypeDynamicProxyGenerator     = Guard.ArgumentNotNull(typeDynamicProxyGenerator, nameof(typeDynamicProxyGenerator));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="InterceptingProxyFactory"/> class.
 /// </summary>
 /// <param name="instanceDynamicProxyGenerator">The instance dynamic proxy generator.</param>
 /// <param name="typeDynamicProxyGenerator">The type dynamic proxy generator.</param>
 /// <param name="interceptorCollector">The interceptor collector.</param>
 /// <param name="serviceProvider">The service provider.</param>
 /// <exception cref="ArgumentNullException">Specified <paramref name="instanceDynamicProxyGenerator"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="typeDynamicProxyGenerator"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="interceptorCollector"/> is null.</exception>
 /// <exception cref="ArgumentNullException">Specified <paramref name="serviceProvider"/> is null.</exception>
 public InterceptingProxyFactory(
     IInstanceDynamicProxyGenerator instanceDynamicProxyGenerator,
     ITypeDynamicProxyGenerator typeDynamicProxyGenerator,
     IInterceptorCollector interceptorCollector,
     IServiceProvider serviceProvider)
 {
     this.InstanceDynamicProxyGenerator = Guard.ArgumentNotNull(instanceDynamicProxyGenerator, nameof(instanceDynamicProxyGenerator));
     this.TypeDynamicProxyGenerator     = Guard.ArgumentNotNull(typeDynamicProxyGenerator, nameof(typeDynamicProxyGenerator));
     this.InterceptorCollector          = Guard.ArgumentNotNull(interceptorCollector, nameof(interceptorCollector));
     this.ServiceProvider = Guard.ArgumentNotNull(serviceProvider, nameof(serviceProvider));
 }