/// <summary> /// 当非GET或HEAD请求的缺省参数特性声明时 /// 为复杂参数类型的参数应用JsonContentAttribute /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IWebApiClientBuilder UseJsonFirstApiActionDescriptor(this IWebApiClientBuilder builder) { builder.Services.AddSingleton <IApiActionDescriptorProvider, JsonFirstApiActionDescriptorProvider>(); return(builder); }
/// <summary> /// 配置HttpApiOptions的默认值 /// </summary> /// <param name="builder"></param> /// <param name="configuration">配置</param> /// <returns></returns> public static IWebApiClientBuilder ConfigureHttpApi(this IWebApiClientBuilder builder, IConfiguration configuration) { builder.Services.AddOptions <HttpApiOptions>().Bind(configuration); return(builder); }
/// <summary> /// 编译时使用SourceGenerator生成接口的代理类型代码 /// 运行时查找接口的代理类型并创建实例 /// </summary> /// <remarks> /// <para>• 要求声明http接口的项目的编程语言为c#</para> /// <para>• 要求声明http接口的项目引用WebApiClientCore.Extensions.SourceGenerator包</para> /// <para>• 要求Visual Studio或msbuild工具为最新版本</para> /// </remarks> /// <param name="builder"></param> /// <returns></returns> public static IWebApiClientBuilder UseSourceGeneratorHttpApiActivator(this IWebApiClientBuilder builder) { builder.Services.AddSingleton(typeof(IHttpApiActivator <>), typeof(SourceGeneratorHttpApiActivator <>)); return(builder); }
/// <summary> /// 配置HttpApiOptions的默认值 /// </summary> /// <param name="builder"></param> /// <param name="configureOptions">配置选项</param> /// <returns></returns> public static IWebApiClientBuilder ConfigureHttpApi(this IWebApiClientBuilder builder, Action <HttpApiOptions> configureOptions) { builder.Services.AddOptions <HttpApiOptions>().Configure(configureOptions); return(builder); }