c# – .NET核心Web项目 – 使用命令行参数
发布时间:2020-12-15 21:07:14 所属栏目:百科 来源:网络整理
导读:我想通过命令行参数将DbConnectionString传递给我的.NET Core Web API应用程序. 看完之后: .NET core Pass Commandline Args to Startup.cs from Program.cs 我的Program.cs看起来像: public static void Main(string[] args) { var config = new Configur
我想通过命令行参数将DbConnectionString传递给我的.NET Core Web API应用程序.
看完之后: .NET core Pass Commandline Args to Startup.cs from Program.cs 我的Program.cs看起来像: public static void Main(string[] args) { var config = new ConfigurationBuilder() .AddCommandLine(args) .Build(); var host = new WebHostBuilder() .UseKestrel() .UseConfiguration(config) .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } 所以现在……我已经将命令行args添加到我的WebHostBuider的键值对配置集合中…… 但是,在Startup.cs中我注册了所有内容,例如我的DbContext(需要将DbConnectionString作为命令行arg传递) 我的Startup构造函数如下所示: public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json",optional: false,reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json",optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); } 因为以前,我的连接字符串存储在Config文件中. 我的问题是 – 如何从Startup.cs中访问命令行参数? 解决方法
我失踪了
.ConfigureServices(s => s.AddSingleton<IConfigurationRoot>(config)) 在我的program.cs中.修正版如下: public static void Main(string[] args) { var config = new ConfigurationBuilder() .AddCommandLine(args) .Build(); var host = new WebHostBuilder() .UseKestrel() .UseConfiguration(config) .ConfigureServices(s => s.AddSingleton<IConfigurationRoot>(config)) .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); }` (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |