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)));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 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));
 }
Exemple #6
0
 protected abstract TResult VisitTransient(TransientCallSite transientCallSite, TArgument argument);
 protected override object VisitTransient(TransientCallSite transientCallSite, ServiceProvider provider)
 {
     return(provider.CaptureDisposable(
                VisitCallSite(transientCallSite.Service, provider)));
 }
Exemple #8
0
 protected override object VisitTransient(TransientCallSite transientCallSite, ServiceProviderEngineScope scope)
 {
     return(scope.CaptureDisposable(
                VisitCallSite(transientCallSite.ServiceCallSite, scope)));
 }