简体   繁体   English

有没有办法全局访问 appSettings.json ?

[英]Is there a way to access appSettings.json globally?

I have a C# console app, and I'm defining an IConfiguration object as follows inside of Program.cs:我有一个 C# 控制台应用程序,我在 Program.cs 中定义了一个 IConfiguration object,如下所示:

var myConfig = new ConfigurationBuilder()
            .AddJsonFile($"appsettings.{myEnvironment}.json", true, true)
            .Build();

... and I can reference settings from within that same Program.cs file like this: ...我可以从同一个 Program.cs 文件中引用设置,如下所示:

var mySetting = myConfig.GetValue<string>("Section:SettingName");

However, I'm wondering what would be the way to access that same myConfig object from other files in my application?但是,我想知道从我的应用程序中的其他文件访问相同的 myConfig object 的方法是什么? For instance, myConfig contains a connection string, but I don't actually make use of the connection string until a few layers deeper (inside of myService > myRepository > myDbContext).例如,myConfig 包含一个连接字符串,但直到更深几层(在 myService > myRepository > myDbContext 内部)之前,我才真正使用连接字符串。 What is a best practice to read that connection string from inside of myRepository or myDbContext?从 myRepository 或 myDbContext 内部读取该连接字符串的最佳做法是什么? Obviously, I can pass the connection string as a parameter from Program.cs and myService, but that seems inefficient.显然,我可以将连接字符串作为 Program.cs 和 myService 的参数传递,但这似乎效率低下。

You can use the build-in DI (Dependency Injection), which also works for .NET C# Console Applications as already mentioned here您可以使用内置 DI(依赖注入),它也适用于 .NET C# 控制台应用程序,如此处所述

How to use Dependency Injection in.Net core Console Application 如何在.Net核心控制台应用程序中使用依赖注入

Pass IConfiguration to your constructor.IConfiguration传递给您的构造函数。 You can use Bind calls to create objects from it, or just read it like a dictionary.您可以使用Bind调用从中创建对象,或者像字典一样读取它。

如何访问列表<object>来自 appsettings.Json?<div id="text_translate"><p> 在我的 appsettings.json 我有一个这样的字段</p><pre> "MyFields": [ { "name":"one", "type":"type1" "parameters":[{"key":"url","value":"myurl.com"}, {"key":"data","value":"mydata"}] }, { "name":"two", "type":"type2"... .. and so on } ]</pre><p> 我制作了一个具有以下属性的 class Myfield:</p><pre> public class MyField { [JsonProperty] public string? name { get; set; } [JsonProperty] public string? type { get; set; } [JsonProperty] public IDictionary<string,string>? parameters { get; set; } }</pre><p> 我正在尝试使用配置在另一个 class 中访问它,如下所示:</p><pre> //config is the configuration var myFields = config.GetSection("MyFields").Get<List<MyField>>();</pre><p> 问题是 myFields 结果是空的。 但是当我通过消除“参数”字段来做同样的事情时,它就像一个魅力。</p><p> 我知道这与匹配不当有关,但能得到一些帮助会很棒。</p></div></object> - How can I access a List<object> from appsettings.Json?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用.Net 5 Core在其他类中全局访问appsettings.json - How to access appsettings.json globally in other classes using .Net 5 Core 访问控制器类中的appsettings.json值 - Access appsettings.json values in controller classes 从类库项目访问appsettings.json文件设置 - Access appsettings.json file setting from the class library project 在 appsettings.json 文件中更改值的简单快捷方式 - Simple and quick way to change values in appsettings.json file 如何访问列表<object>来自 appsettings.Json?<div id="text_translate"><p> 在我的 appsettings.json 我有一个这样的字段</p><pre> "MyFields": [ { "name":"one", "type":"type1" "parameters":[{"key":"url","value":"myurl.com"}, {"key":"data","value":"mydata"}] }, { "name":"two", "type":"type2"... .. and so on } ]</pre><p> 我制作了一个具有以下属性的 class Myfield:</p><pre> public class MyField { [JsonProperty] public string? name { get; set; } [JsonProperty] public string? type { get; set; } [JsonProperty] public IDictionary<string,string>? parameters { get; set; } }</pre><p> 我正在尝试使用配置在另一个 class 中访问它,如下所示:</p><pre> //config is the configuration var myFields = config.GetSection("MyFields").Get<List<MyField>>();</pre><p> 问题是 myFields 结果是空的。 但是当我通过消除“参数”字段来做同样的事情时,它就像一个魅力。</p><p> 我知道这与匹配不当有关,但能得到一些帮助会很棒。</p></div></object> - How can I access a List<object> from appsettings.Json? 从同一解决方案中的另一个项目访问 appsettings.json 很热吗? - Hot to access appsettings.json from another project in same solution? 从.NET 4.5.2项目访问appsettings.json - Access appsettings.json from .NET 4.5.2 project 访问库项目中的配置object(appsettings.json) - Access configuration object (appsettings.json) in library project 从 appsettings.json 访问文件路径,用于 docker linux - Access file path from appsettings.json for docker linux 有没有办法通过 appsettings.json 设置 Serilog 格式化程序变量? - Is there a way to set Serilog formatter variables via appsettings.json?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM