gpt4 book ai didi

c# - 在 asp net core 控制台应用程序中读取 appsettings

转载 作者:太空狗 更新时间:2023-10-29 20:16:04 26 4
gpt4 key购买 nike

我正在尝试读取我的控制台应用程序上的应用程序设置以及设置他的 EntityFramework 连接字符串。

我做了很多谷歌,但没有找到任何单一的解决方案,甚至在 Microsoft 的文档中也没有。

这是我的问题。

  1. 如何设置 EntityFramework 连接字符串?我的 Entity Framework 项目是单独的,对于我的 MVC 项目,我按以下代码执行此操作。
string connectionString = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<MyDBContext>(option =>option.UseSqlServer(connectionString, m => m.MigrationsAssembly("MyMVCDLL")));
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
  1. 如何阅读应用设置?
  2. 如何在控制台应用程序中实现 DI 以获取应用程序设置?

谁能帮我解决这个问题。

最佳答案

首先,不要在 appsettings.json 中保存敏感数据(登录名、密码、API key ),因为您可能会不小心将其提交给 Verison Control,从而有泄露凭据的风险。为此,您必须使用 User Secrets 工具进行开发,请参阅 User Secret documentation了解详情。

其次,阅读 Configuration.GetConnectionString("DefaultConnection"); 方法的工具提示文档。它清楚地指出 `GetConnectionString 是一个

Shorthand for GetSection(“ConnectionStrings”)[name]

也就是说,您的 appsettings.json 必须如下所示:

{
...,
"ConnectionStrings":
{
"DefaultConnection" : "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"
}
}

或者当使用用户 secret 时:

dotnet user-secrets set ConnectionStrings:DefaultConnection Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

更新

在控制台应用程序中使用它是完全一样的。配置包不是特定于 ASP.NET Core 的,可以单独使用。

所需的软件包是(取决于您要使用的软件包

"Microsoft.Extensions.Configuration": "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.NET Core 中完全相同。不是在 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();

关于c# - 在 asp net core 控制台应用程序中读取 appsettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com