/// <summary> /// 初始化系统 /// </summary> /// <param name="args"></param> public static void PreWorks(string[] args) { RayConfiguration.Root = new ConfigurationBuilder() .AddJsonFile("appsettings.json", false, true) //.AddJsonFile("appsettings.local.json", true,true) .AddExcludeEmptyEnvironmentVariables("Ray_") .AddCommandLine(args, Constants.CommandLineMapper) .Build(); //日志: Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(RayConfiguration.Root) .WriteTo.TextWriter(PushService.PushStringWriter, GetConsoleLogLevel(), GetConsoleLogTemplate() + "\r\n")//用来做微信推送 .CreateLogger(); var dictionary = Environment.GetEnvironmentVariables() .Cast <DictionaryEntry>() .Where(it => it.Key.ToString().StartsWith("Ray_", StringComparison.OrdinalIgnoreCase)) .ToDictionary(it => it.Key.ToString(), it => it.Value.ToString()); System.Console.WriteLine("env:" + JsonSerializer.Serialize(dictionary, JsonSerializerOptionsBuilder.Builder(x => x.WriteIndented = true))); var nc = RayConfiguration.Root["DailyTaskConfig:NumberOfCoins"]; Log.Logger.Information($"空:{nc == ""}"); Log.Logger.Information($"null:{nc == null}"); Log.Logger.Information($"空格:{nc == " "}"); Log.Logger.Information($"5:{nc == "5"}"); Log.Logger.Information($"10:{nc == "10"}"); Log.Logger.Information($"20:{nc == "20"}"); int.TryParse(nc, out int result); Log.Logger.Information($"value+1:{result + 1}"); System.Console.WriteLine("test"); //Host: var hostBuilder = new HostBuilder() .ConfigureServices((hostContext, services) => { services.AddSingleton <IConfiguration>(RayConfiguration.Root); services.AddBiliBiliConfigs(RayConfiguration.Root); services.AddBiliBiliClientApi(); services.AddDomainServices(); services.AddAppServices(); }) .UseSerilog() .UseConsoleLifetime(); RayContainer.Root = hostBuilder.Build().Services; }
public override void Load() { var dictionary = Environment.GetEnvironmentVariables() .Cast <DictionaryEntry>() .Where(it => it.Key.ToString().StartsWith(prefix, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(it.Value.ToString()))//过滤掉空值的(使用GitHub Actions的脚本传入环境变量,空值会覆盖,本地并不会,所以这里做了特殊处理) .ToDictionary(it => it.Key.ToString().Substring(prefix.Length), it => it.Value.ToString()); System.Console.WriteLine(JsonSerializer.Serialize(dictionary, JsonSerializerOptionsBuilder.Builder(x => x.WriteIndented = true))); this.Data = new Dictionary <string, string>(dictionary, StringComparer.OrdinalIgnoreCase); }