using System; using System.Net.Http; namespace FastGithub.Http { /// /// 请求上下文扩展 /// static class RequestContextExtensions { private static readonly HttpRequestOptionsKey key = new(nameof(RequestContext)); /// /// 设置RequestContext /// /// /// public static void SetRequestContext(this HttpRequestMessage httpRequestMessage, RequestContext requestContext) { httpRequestMessage.Options.Set(key, requestContext); } /// /// 获取RequestContext /// /// /// public static RequestContext GetRequestContext(this HttpRequestMessage httpRequestMessage) { return httpRequestMessage.Options.TryGetValue(key, out var requestContext) ? requestContext : throw new InvalidOperationException($"请先调用{nameof(SetRequestContext)}"); } } }