ServiceAdaptor.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Microsoft.AspNetCore.Hosting;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using Newtonsoft.Json.Linq;
  6. using ServiceAdaptor.NetCore.Client;
  7. using Steeltoe.Discovery.Client;
  8. using Vit.Core.Module.Log;
  9. using Vit.Extensions;
  10. namespace ServiceAdaptor.NetCore.Be.Eureka
  11. {
  12. public class ServiceAdaptor : IServiceAdaptor
  13. {
  14. public IWebHostBuilder InitWebHostBuilder(IWebHostBuilder builder, JObject config, out IApiClient apiClient)
  15. {
  16. var httpApi = new ApiClient();
  17. apiClient = httpApi;
  18. #region 超时时间
  19. var timeoutSeconds = config["timeoutSeconds"].ConvertBySerialize<int?>();
  20. if (timeoutSeconds.HasValue)
  21. {
  22. httpApi.vitHttpClient.TimeoutSeconds = timeoutSeconds.Value;
  23. }
  24. #endregion
  25. builder.ConfigureServices((WebHostBuilderContext context, IServiceCollection services) =>
  26. {
  27. var env = services.BuildServiceProvider().GetService<IHostingEnvironment>();
  28. var configBuilder = new ConfigurationBuilder().SetBasePath(env.ContentRootPath)
  29. .AddJsonFile("appsettings.json")
  30. .AddEnvironmentVariables();
  31. var Configuration = configBuilder.Build();
  32. //services.AddBlueearthProvider(Configuration);
  33. //services.AddBlueearthProvider(Configuration, false, false, true);
  34. services.AddBlueearthProvider(Configuration, false, false, false);
  35. services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
  36. }).AddConfigure(app=>
  37. {
  38. app.UseDiscoveryClient();
  39. });
  40. return builder;
  41. }
  42. }
  43. }