当前位置: 首页 > 知识库问答 >
问题:

读取appsettings.json-字段保持为空

司马作人
2023-03-14

我觉得这家初创公司有问题。cs,因为我的

所以我们有自己的应用程序设置。json

"Config": {
    "ApplicationName": "some name",
    "ConnectionString": "someconstring",
    "Version": "1.0.0"
  },

这是我们的模型

public class Config
    {   
        public string ApplicationName { get; set; }
        public string ConnectionString { get; set; }
        public string Version { get; set; }
    }

startup.cs

 public Startup(IConfiguration configuration)

    {
        Configuration = configuration;
    }



public static IConfiguration Configuration { get; set; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        // Add functionality to inject IOptions<T>
        services.AddOptions();

        // Add our Config object so it can be injected
        services.Configure<Config>(Configuration);
    }

然后在我们的控制器中,我尝试加载这些数据,但不幸的是它们仍然是空的。

   private IOptions<Config> config;
            public CompaniesController(IOptions<Config> config)
            {
                this.config = config;
            }

我试图改变这家初创公司。cs和类似的东西

 services.Configure<Config>(options =>
            {
                options.ConnectionString = Configuration.GetSection("Config:ConnectionString").Value;
            });

但这似乎不起作用。

我一直在使用的资源:

https://dzone.com/articles/dynamic-connection-string-in-net-core

https://stackoverflow.com/questions/31453495/how-to-read-appsettings-values-from-json-file-in-asp-net-core

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-2.2

但很明显,我忽略了一个关键点。

编辑:我正在使用ASP。Net Core 2.0

编辑2:

Program.cs

public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }

整个应用程序设置。json文件

{
  "Config": {
    "ApplicationName": "somename",
    "ConnectionString": "someconstring",
    "Version": "1.0.0"
  },
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  }
}


共有2个答案

国仰岳
2023-03-14
     services.Configure<Config>(options =>
                {
                    options.ConnectionString = Configuration.GetValue<string>("Config:ConnectionString");
                    options.ApplicationName = "test";
                });

如果你想更广泛地配置你的选项。

薛宏壮
2023-03-14
services.Configure<Config>(Configuration);

这一行没有达到预期的结果,因为您要查找的JSON属性嵌套在appsettings中的Config属性下。json文件。要按预期加载这些值,请使用GetSection抓取Config部分并将其传递到Configure

services.Configure<Config>(Configuration.GetSection("Config"));

 类似资料:
  • 我的看起来是: 并且我正在尝试使用以下命令访问连接字符串: 这将抛出一个空异常错误,我不确定原因。

  • 嗨,我必须读取一个xml文件,在代码的一部分中有一些字段标签,名称如示例中所述 我只想读取名为“link\u pdf”的字段 如果我用这个密码 我可以读取值,但在某些情况下这不是一个好的工作,如何通过字段名访问值? 不是工作

  • 我正在尝试用auto连接aws上的我的经纪人。创造话题。在我的服务器中enable=true。属性文件。当我试图连接Java代理时,出现了以下错误。 1197[Kafka制作人网络线程|制作人-1]错误组织。阿帕奇。Kafka。客户。制作人内部。发送方-Kafka制作人I/O线程中的未捕获错误:org。阿帕奇。Kafka。常见的协议类型。SchemaException:读取字段“topic_met

  • 我正在使用一个新的 java 应用程序,该应用程序适用于 db2 中无法更改的旧数据库。在其中一个表中,有包含 comp3 字符的 char(32) 列。 我们使用ibmdb2jdbctype4驱动程序阅读本专栏。当我们检查字节以解压缩字符时,我们发现无论何时bbdd中有一个值为25的字节,jdbc驱动程序都会将其恢复为值15。值为15的字节也会恢复为15的值,因此我们不知道如何解决这个不明确的值

  • 只读字段用来保护某些特殊的字段值不被更改,这个字段的值一旦写入,就无法更改。 要使用只读字段的功能,我们只需要在模型中定义readonly属性: <?php namespace app\index\model; use think\Model; class User extends Model { protected $readonly = ['name', 'email']; } 例

  • 问题内容: Elasticsearch是否保持多值字段的顺序? 即,如果我在字段中输入了以下值: (鉴于未分析字段) 我是否可以确定列表的内容将始终按照与放置列表相同的顺序返回? 在上面的示例中,我想确保“值”中第一个位置的“一个”将始终与“ values_original”等中的“ 1”相对应。 我也可以将其保留为嵌套对象,即 但我想避免开销。 如果可以保证保留多值字段中的值顺序,那么我保留两个