protected override Expression VisitTransient(TransientCallSite callSite, ParameterExpression provider) { var implType = callSite.ServiceCallSite.ImplementationType; // Elide calls to GetCaptureDisposable if the implemenation type isn't disposable return(TryCaptureDisposible( implType, provider, VisitCallSite(callSite.ServiceCallSite, provider))); }
protected override Expression VisitTransient(TransientCallSite callSite, CallSiteExpressionBuilderContext context) { var implType = callSite.ServiceCallSite.ImplementationType; // Elide calls to GetCaptureDisposable if the implemenation type isn't disposable return(TryCaptureDisposible( implType, context.ScopeParameter, VisitCallSite(callSite.ServiceCallSite, context))); }
protected override Expression VisitTransient(TransientCallSite transientCallSite, ILEmitResolverBuilderContext argument) { // RuntimeScope.CaptureDisposables([create value]) var shouldCapture = BeginCaptureDisposable(transientCallSite.ServiceCallSite.ImplementationType, argument); VisitCallSite(transientCallSite.ServiceCallSite, argument); if (shouldCapture) { EndCaptureDisposable(argument); } return(null); }
protected override Expression VisitTransient(TransientCallSite callSite, ParameterExpression provider) { return(Expression.Invoke(GetCaptureDisposable(provider), VisitCallSite(callSite.Service, provider))); }
protected override Type VisitTransient(TransientCallSite transientCallSite, CallSiteValidatorState state) { return(VisitCallSite(transientCallSite.ServiceCallSite, state)); }
protected abstract TResult VisitTransient(TransientCallSite transientCallSite, TArgument argument);
protected override object VisitTransient(TransientCallSite transientCallSite, ServiceProvider provider) { return(provider.CaptureDisposable( VisitCallSite(transientCallSite.Service, provider))); }
protected override object VisitTransient(TransientCallSite transientCallSite, ServiceProviderEngineScope scope) { return(scope.CaptureDisposable( VisitCallSite(transientCallSite.ServiceCallSite, scope))); }