| File: NoRemoteCallHandler.cs | Web Access |
| Project: src\bench\Libraries\Microsoft.Extensions.Http.Diagnostics.PerformanceTests\Microsoft.Extensions.Http.Diagnostics.PerformanceTests.csproj (Microsoft.Extensions.Http.Diagnostics.PerformanceTests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.IO; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Microsoft.Extensions.Http.Logging.Bench; internal sealed class NoRemoteCallHandler : DelegatingHandler { private readonly byte[] _data; private NoRemoteCallHandler(byte[] data) { _data = data; } public static NoRemoteCallHandler Create(string fileName) { var assemblyFileLocation = Path.GetDirectoryName(typeof(NoRemoteCallHandler).Assembly.Location)!; var uri = new Uri(assemblyFileLocation).LocalPath; var responseFilePath = Path.Combine(Directory.GetFiles( path: uri, searchPattern: fileName)); var fileContent = File.ReadAllBytes(responseFilePath); return new NoRemoteCallHandler(fileContent); } protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var response = new HttpResponseMessage { StatusCode = System.Net.HttpStatusCode.OK, RequestMessage = request, Content = new StreamContent(new MemoryStream(_data, writable: false)) }; response.Content.Headers.ContentType = new("application/json"); return Task.FromResult(response); } }