Exemple #1
0
    public object CreateProxy(Type serviceType, object?[] arguments)
    {
        if (null == serviceType)
        {
            throw new ArgumentNullException(nameof(serviceType));
        }

        if (serviceType.IsInterface)
        {
            return(AspectCoreHelper.ProxyGenerator.CreateInterfaceProxy(serviceType));
        }

        var ctorArguments = ActivatorHelper.GetBestConstructorArguments(_serviceProvider, serviceType, arguments);

        return(AspectCoreHelper.ProxyGenerator.CreateClassProxy(serviceType, serviceType, ctorArguments));
    }
Exemple #2
0
        public object CreateProxy(Type serviceType, object[] arguments)
        {
            if (null == serviceType)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }

            if (serviceType.IsInterface)
            {
                return(CastleHelper.ProxyGenerator.CreateInterfaceProxyWithoutTarget(serviceType,
                                                                                     new CastleFluentAspectInterceptor()));
            }

            var ctorArguments = ActivatorHelper.GetBestConstructorArguments(_serviceProvider, serviceType, arguments);

            return(CastleHelper.ProxyGenerator.CreateClassProxy(
                       serviceType, ctorArguments, new CastleFluentAspectInterceptor()
                       ));
        }
Exemple #3
0
        public object CreateProxy(Type serviceType, Type implementType, params object[] arguments)
        {
            if (null == serviceType)
            {
                throw new ArgumentNullException(nameof(serviceType));
            }
            if (null == implementType)
            {
                throw new ArgumentNullException(nameof(implementType));
            }

            if (serviceType.IsInterface)
            {
                var implementInstance = _serviceProvider.CreateInstance(implementType);
                return(AspectCoreHelper.ProxyGenerator.CreateInterfaceProxy(serviceType, implementInstance));
            }
            var ctorArguments = ActivatorHelper.GetBestConstructorArguments(_serviceProvider, implementType, arguments);

            return(AspectCoreHelper.ProxyGenerator.CreateClassProxy(serviceType, implementType, ctorArguments));
        }