在asp.net核心控制台应用程序中读取应用程序设置
本文关键字:应用程序 设置 读取 控制台 asp net 核心 | 更新日期: 2023-09-27 18:14:10
我正在尝试读取控制台应用程序上的appsetting以及设置EntityFramework连接字符串。
我在谷歌上搜索了很多,但没有找到任何解决方案,甚至在微软的文档中也没有找到。
这是我的问题。
- 如何设置EntityFramework连接字符串?,我的实体框架项目是分开的,对于我的MVC项目,我这样做的代码如下:
string connectionString = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext<MyDBContext>(option =>option.UseSqlServer(connectionString, m => m.MigrationsAssembly("MyMVCDLL"))); services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
- 如何读取appsetting?
- 如何在控制台应用程序中实现DI来获取应用程序?
有人能帮我一下吗
首先,不要在appsettings.json
中保存敏感数据(登录名,密码,API密钥),因为您可能会意外地将其提交给版本控制,从而冒着凭据泄露的风险。为此,您必须使用User Secrets工具进行开发,详细信息请参阅User Secret文档。
第二,阅读Configuration.GetConnectionString("DefaultConnection");
方法的工具提示文档。它清楚地指出' GetConnectionString是一个
GetSection(" ConnectionStrings ")[name]
话虽如此,你的应用程序。Json必须是这样的:
{
...,
"ConnectionStrings":
{
"DefaultConnection" : "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"
}
}
或当使用用户机密时:
更新dotnet user-secrets set ConnectionStrings:DefaultConnection Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
在控制台应用程序中使用它完全相同。配置包不是ASP。NET Core特定的,可以单独使用。
所需的软件包如下(取决于您想使用哪一个)
" Microsoft.Extensions。配置":"1.0.0","Microsoft.Extensions.Configuration。EnvironmentVariables":"1.0.0","Microsoft.Extensions.Configuration。FileExtensions":"1.0.0","Microsoft.Extensions.Configuration。Json":"1.0.0","Microsoft.Extensions.Configuration。UserSecrets":"1.0.0",
构建配置的代码与ASP中完全相同。净的核心。而不是在Startup.cs
中做,而是在Main
方法中做:
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
// You can't use environment specific configuration files like this
// becuase IHostingEnvironment is an ASP.NET Core specific interface
//.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddUserSecrets()
.AddEnvironmentVariables();