在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来获取应用程序?
  • 有人能帮我一下吗

    在asp.net核心控制台应用程序中读取应用程序设置

    首先,不要在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();