首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft.Extensions.Configuration中的误差

Microsoft.Extensions.Configuration中的误差
EN

Stack Overflow用户
提问于 2021-12-21 17:37:23
回答 1查看 1.8K关注 0票数 1

试图在这里学习控制台应用程序https://www.connectionstrings.com/store-and-read-connection-string-in-appsettings-json/的教程

所以在我的应用程序中,我有:

代码语言:javascript
复制
{
  "ConnectionStrings": {
    "myDb1": "Server=myServer;Database=myDb1;Trusted_Connection=True;",
  }
}

我的节目:

代码语言:javascript
复制
using System;
using Microsoft.Extensions.Configuration;

namespace mynamespace 
{
    class Program
    {
        string myDb1ConnectionString = _configuration.GetConnectionString("myDb1");

        static void Main(string[] args)
        {
            ... 
        }
    }
}

我得到的错误是:“名称'_configuration‘在当前上下文中不存在”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 18:13:20

链接到的页面不是教程,它只显示如何从任何配置提供程序(而不仅仅是appsettings.json )读取连接字符串。它假定您已经构建了一个配置对象。不过,.NET (Core) 5和6使用的代码要简单得多。

检查.NET中的配置以了解配置到底是如何工作的。您可以找到关于各种配置提供程序、如何使用它们以及如何在ASP.NET核中的配置中创建自己的配置提供程序的更详细信息。

使用通用主机

在当前的长期版本.NET 6中,最低限度的应用程序需要:

代码语言:javascript
复制
using Microsoft.Extensions.Hosting;

using IHost host = Host.CreateDefaultBuilder(args).Build();


var configuration=host.Services.GetRequiredService<IConfiguration>();

var connectionString=configuration.GetConnectionString("blahblah");

...

正如文档所解释的,CreateDefaultBuilder将从任何appsettings.json文件、环境变量以及最后的命令行参数中加载配置设置。

这意味着您可以通过使用环境变量或CLI参数指定新值来覆盖存储在JSON文件中的设置,例如:

代码语言:javascript
复制
dotnet run /ConnectionStrings:blahblah="......."

没有通用主机

只需使用ConfigurationBuilder创建配置对象:

代码语言:javascript
复制
IConfiguration config = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddEnvironmentVariables()
    .AddCommandLine(args)
    .Build();

var connectionString=configuration.GetConnectionString("blahblah");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70439506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档