protected override Expression VisitInterception(IntercepCallSite interceptCallSite, ParameterExpression provider) { return(Expression.Call(Expression.Constant(interceptCallSite.ProxyFactory, typeof(IProxyFactory)), CreateProxyMethodInfo, Expression.Constant(interceptCallSite.ServiceType), VisitCallSite(interceptCallSite.TargetCallSite, provider))); }
protected abstract TResult VisitInterception(IntercepCallSite interceptCallSite, TArgument argument);
protected override object VisitInterception(IntercepCallSite interceptCallSite, ServiceProvider argument) { IProxyFactory proxyFactory = interceptCallSite.ProxyFactory; return(proxyFactory.CreateProxy(interceptCallSite.ServiceType, VisitCallSite(interceptCallSite.TargetCallSite, argument))); }
protected override Type VisitInterception(IntercepCallSite interceptCallSite, CallSiteValidatorState argument) => null;