Я рефакторирую свой код и перемещаю некоторые классы на внешнюю сборку. В своих проектах я использую Refit , и в настоящее время я устанавливаю его так в Startup :
Я рефакторирую свой код и перемещаю некоторые классы на внешнюю сборку. В своих проектах я использую Refit , и в настоящее время я устанавливаю его так в Startup : [code]services.AddHttpClient();
services.AddRefitClient(new RefitSettings(new NewtonsoftJsonContentSerializer())) .AddHttpMessageHandler() .ConfigureHttpClient(c => c.BaseAddress = new Uri(configuration["App:MyServerUrl"])); < /code> Теперь, в моих проектах я хотел бы иметь что -то подобное: < /p> services.AddServers(options => { options.MyServerUrl = configuration["App:MyServerUrl"]; }); < /code> Поэтому я пытаюсь создать следующее расширение: < /p> public class ServerOptions { public string MyServerUrl { get; set; } }
public static IServiceCollection AddServers(this IServiceCollection services, Action configureOptions = null) { if (configureOptions is null) return services;
services.AddHttpClient();
services.AddRefitClient(new RefitSettings(new NewtonsoftJsonContentSerializer())) .AddHttpMessageHandler() .ConfigureHttpClient(c => c.BaseAddress = new Uri(...));
return services; } [/code] Как правильно настроить параметры конфигурации, чтобы свойство передавалось по основанному адресу httpclient ?