public void ApplyConfiguration(ParameterInfo parameter, ObjectFieldDescriptor descriptor)
    {
        switch (_kind)
        {
        case ServiceKind.Pooled:
            UseDbContext <TDbContext>(descriptor.Extend().Definition);
            break;

        case ServiceKind.Synchronized:
            ServiceExpressionHelper.ApplyConfiguration(parameter, descriptor, _kind);
            break;

        case ServiceKind.Resolver:
            ServiceExpressionHelper.ApplyConfiguration(parameter, descriptor, _kind);
            ObjectFieldDefinition     definition            = descriptor.Extend().Definition;
            FieldMiddlewareDefinition placeholderMiddleware =
                new(_ => _ => throw new NotSupportedException(), key : ToList);
            FieldMiddlewareDefinition serviceMiddleware =
                definition.MiddlewareDefinitions.Last(t => t.Key == PooledService);
            var index = definition.MiddlewareDefinitions.IndexOf(serviceMiddleware) + 1;
            definition.MiddlewareDefinitions.Insert(index, placeholderMiddleware);
            AddCompletionMiddleware(definition, placeholderMiddleware);
            break;
        }
    }
예제 #2
0
 public void ApplyConfiguration(ParameterInfo parameter, ObjectFieldDescriptor descriptor)
 => ServiceExpressionHelper.ApplyConfiguration(parameter, descriptor, _kind);