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); }
protected override object BuildFactory(FactoryCallSite factoryCallSite) { return(factoryCallSite.Factory(_serviceProvider)); }