You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
namespace HttpClientStudy.Config
{
public static class WebApiConfigManager
{
public static WebApiConfig GetWebApiConfig()
{
return GetWebApiConfigOption().CurrentValue;
}
public static IOptionsMonitor<WebApiConfig> GetWebApiConfigOption()
{
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddWebApiConfiguration();
ServiceCollection services = new ServiceCollection();
services.AddSingleton<IConfiguration>(configurationBuilder.Build());
services.AddWebApiOptions();
var webApiConfigOption = services.BuildServiceProvider().GetService<IOptionsMonitor<WebApiConfig>>();
if (webApiConfigOption == null)
{
throw new OptionsValidationException(nameof(webApiConfigOption), typeof(IOptions<WebApiConfig>), new[] { "获取配置异常"});
}
return webApiConfigOption;
}
}
}