public object CreateProxy([NotNull] Type serviceType)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }

            var proxyType = _proxyTypeFactory.CreateProxyType(serviceType);
            var proxy     = _serviceProvider.CreateInstance(proxyType);

            return(proxy);
        }
        public object CreateProxy([NotNull] Type serviceType)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }

            var proxyType = _proxyTypeFactory.CreateProxyType(serviceType);
            var proxy     = _serviceProvider.CreateInstance(proxyType);

            if (serviceType.IsClass)
            {
                ProxyUtils.SetProxyTarget(proxy, _serviceProvider.CreateInstance(serviceType));
            }
            return(proxy);
        }