6.7服务扩展方法
除了系统自带的 IHttpRemoteService 方法,您还可以为其添加自定义扩展方法,以简化代码并减少重复。例如,您可以添加一个 SendAsSpan 方法,用于发送 HTTP 远程请求返回 Span。具体实现如下:
除了系统自带的 IHttpRemoteService 方法,您还可以为其添加自定义扩展方法,以简化代码并减少重复。例如,您可以添加一个 SendAsSpan 方法,用于发送 HTTP 远程请求返回 Span<char>。具体实现如下:
public static class HttpRemoteServiceExtensions{ public static Span<char> SendAsSpan(this IHttpRemoteService httpRemoteService, HttpRequestBuilder httpRequestBuilder, CancellationToken cancellationToken = default) { // 空检查 ArgumentNullException.ThrowIfNull(httpRequestBuilder); var str = httpRemoteService.SendAsString(httpRequestBuilder, cancellationToken); return str.AsSpan(); } public static async Task<Span<char>> SendAsSpanAsync(this IHttpRemoteService httpRemoteService, HttpRequestBuilder httpRequestBuilder, CancellationToken cancellationToken = default) { // 空检查 ArgumentNullException.ThrowIfNull(httpRequestBuilder); var str = await httpRemoteService.SendAsStringAsync(httpRequestBuilder, cancellationToken); return str.AsSpan(); }}之后,您可以轻松地在 IHttpRemoteService 实例中使用此方法:
httpRemoteService.SendAsSpan(HttpRequestBuilder.Get("https://furion.net"));await httpRemoteService.SendAsSpanAsync(HttpRequestBuilder.Get("https://furion.net"));利用 C# 扩展方法的特性,您可以极大地丰富 IHttpRemoteService 的功能,减少重复代码,同时提高代码的可读性和可维护性。