public object GenerateProxy(ICallRouter callRouter, Type typeToProxy, Type[] additionalInterfaces, object[] constructorArguments) { VerifyClassHasNotBeenPassedAsAnAdditionalInterface(additionalInterfaces); var interceptor = new CastleForwardingInterceptor(new CastleInvocationMapper(), callRouter); var proxyGenerationOptions = GetOptionsToMixinCallRouter(callRouter); var proxy = CreateProxyUsingCastleProxyGenerator(typeToProxy, additionalInterfaces, constructorArguments, interceptor, proxyGenerationOptions); interceptor.StartIntercepting(); return proxy; }
public object GenerateProxy(ICallRouter callRouter, Type typeToProxy, Type[] additionalInterfaces, object[] constructorArguments, ProxyBuilder builder) { VerifyClassHasNotBeenPassedAsAnAdditionalInterface(additionalInterfaces); var interceptor = new CastleForwardingInterceptor(new CastleInvocationMapper(), callRouter); var proxyGenerationOptions = GetOptionsToMixinCallRouter(callRouter); var proxy = CreateProxyUsingCastleProxyGenerator(typeToProxy, additionalInterfaces, constructorArguments, interceptor, proxyGenerationOptions, builder); interceptor.StartIntercepting(); return(proxy); }
public object GenerateProxy(ICallRouter callRouter, Type typeToProxy, Type[] additionalInterfaces, object[] constructorArguments) { VerifyClassHasNotBeenPassedAsAnAdditionalInterface(additionalInterfaces); var proxyIdInterceptor = new ProxyIdInterceptor(typeToProxy); var forwardingInterceptor = new CastleForwardingInterceptor( new CastleInvocationMapper( new CallFactory(), _argSpecificationDequeue), callRouter); var proxyGenerationOptions = GetOptionsToMixinCallRouter(callRouter); var proxy = CreateProxyUsingCastleProxyGenerator( typeToProxy, additionalInterfaces, constructorArguments, new IInterceptor[] { proxyIdInterceptor, forwardingInterceptor }, proxyGenerationOptions); forwardingInterceptor.StartIntercepting(); return(proxy); }