From 96c46b7eb4fdef7cd26ce4960768328634a24f9e Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Sat, 12 Nov 2022 10:09:53 +0100 Subject: [PATCH] Optimized middleware access to the request executor --- .../AspNetCore/src/AspNetCore/MiddlewareBase.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/HotChocolate/AspNetCore/src/AspNetCore/MiddlewareBase.cs b/src/HotChocolate/AspNetCore/src/AspNetCore/MiddlewareBase.cs index e25c1e00383..0f0663aaecf 100644 --- a/src/HotChocolate/AspNetCore/src/AspNetCore/MiddlewareBase.cs +++ b/src/HotChocolate/AspNetCore/src/AspNetCore/MiddlewareBase.cs @@ -17,6 +17,7 @@ public class MiddlewareBase : IDisposable private readonly RequestDelegate _next; private readonly IHttpResponseFormatter _responseFormatter; private bool _disposed; + private readonly RequestExecutorProxy _executorProxy; protected MiddlewareBase( RequestDelegate next, @@ -35,7 +36,7 @@ public class MiddlewareBase : IDisposable throw new ArgumentNullException(nameof(responseFormatter)); SchemaName = schemaName; IsDefaultSchema = SchemaName.EqualsOrdinal(Schema.DefaultName); - ExecutorProxy = new RequestExecutorProxy(executorResolver, schemaName); + _executorProxy = new RequestExecutorProxy(executorResolver, schemaName); } /// @@ -51,7 +52,7 @@ public class MiddlewareBase : IDisposable /// /// Gets the request executor proxy. /// - protected RequestExecutorProxy ExecutorProxy { get; } + protected RequestExecutorProxy ExecutorProxy => _executorProxy; /// /// Invokes the next middleware in line. @@ -71,7 +72,7 @@ public class MiddlewareBase : IDisposable /// Returns the request executor for this middleware. /// protected ValueTask GetExecutorAsync(CancellationToken cancellationToken) - => ExecutorProxy.GetRequestExecutorAsync(cancellationToken); + => _executorProxy.GetRequestExecutorAsync(cancellationToken); /// /// Gets the schema for this middleware. @@ -82,11 +83,8 @@ protected ValueTask GetExecutorAsync(CancellationToken cancell /// /// Returns the schema for this middleware. /// - protected async ValueTask GetSchemaAsync(CancellationToken cancellationToken) - { - var requestExecutor = await GetExecutorAsync(cancellationToken); - return requestExecutor.Schema; - } + protected ValueTask GetSchemaAsync(CancellationToken cancellationToken) + => _executorProxy.GetSchemaAsync(cancellationToken); protected ValueTask WriteResultAsync( HttpContext context,