protected override object VisitFactory(FactoryCallSite factoryCallSite, ServiceProviderEngineScope scope)
        {
            var obj           = factoryCallSite.Factory(scope);
            var interceptors  = InterceptorRuntimeCreate.CreatedInterceptors;
            var implementName = obj.GetType().FullName;

            if (interceptors != null && interceptors.Count > 0 &&
                factoryCallSite.ServiceType.IsInterface &&
                InterceptorRuntimeCreate.CanIntercept(implementName))
            {
                Castle.DynamicProxy.ProxyGenerator generator = new Castle.DynamicProxy.ProxyGenerator();
                obj = generator.CreateInterfaceProxyWithTarget(factoryCallSite.ServiceType,
                                                               obj,
                                                               interceptors.ToArray());
            }
            return(obj);
        }
Example #2
0
 protected override object BuildFactory(FactoryCallSite factoryCallSite)
 {
     return(factoryCallSite.Factory(_serviceProvider));
 }