public class Bar
{
public static readonly string Foo = ConfigurationManager.AppSettings["Foo"];
}
在的。NET框架4. x,我可以使用ConfigurationManager。AppSet["Foo"]
在Webconfig
中获取Foo
,然后我可以通过Bar轻松获取
Foo
的值。Foo
但是在。Net内核,我必须注入选项
,并且不能通过条获取
Foo
的值。Foo
有没有一种方法可以直接通过栏。Foo
获取Foo
的值?
您也可以直接使用配置。你的设置是注入的,所以你可以通过DI。。。
private readonly IConfiguration _configuration;
public MyClass(IConfiguration configuration)
{
_configuration = configuration;
}
然后你可以阅读你的设置。。。
在这种情况下,我要拿回一套。。。
var myList = _configuration.GetSection("MyList").Get<List<string>>();
上面的解决方案既耗时又不简单,这是最好的有效方法,启动时不需要任何设置。这就像使用良好的ol配置。经理。应用设置["设置"]
首先创建一个类似“Credential”的类:
public class Credential
{
public string Username {get;set}
public string Password {get;set;}
}
现在设置完毕,让我们在构造函数上设置IConfiguration,如下所示:
private IConfiguration _configuration;
public ValuesController(IConfiguration iconfig)
{
_configuration = iconfig;
}
那你准备好打电话了!
Credential c = new Credential();
c.UserName = _configuration.GetValue<string>("Credential:username");
c.Password = _configuration.GetValue<string>("Credential:password");
假设你的appsettings.json是这样的:
"Credential": {
"username": "myuser",
"password": "mypassword"
}
希望这对某人有帮助。
所以有两种方法可以做到这一点。
你有一个应用程序设置。json文件:
{
"myConfiguration": {
"myProperty": true
}
}
您可以这样创建一个配置POCO:
public class MyConfiguration
{
public bool MyProperty { get; set; }
}
在您的startup.cs中,您的配置服务中有注册配置的内容:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MyConfiguration>(Configuration.GetSection("myConfiguration"));
}
然后在控制器/服务中注入IOptions,它就可以使用了。
public class ValuesController : Controller
{
private readonly MyConfiguration _myConfiguration;
public ValuesController(IOptions<MyConfiguration> myConfiguration)
{
_myConfiguration = myConfiguration.Value;
}
}
就我个人而言,我不喜欢使用IOptions,因为我认为它会拖累一些我并不真正想要的额外垃圾,但是你可以用它做一些很酷的事情,比如热交换和其他事情。
基本上是一样的,但在配置服务方法中,您将绑定到POCO的一个单例。
public void ConfigureServices(IServiceCollection services)
{
//services.Configure<MyConfiguration>(Configuration.GetSection("myConfiguration"));
services.AddSingleton(Configuration.GetSection("myConfiguration").Get<MyConfiguration>());
}
然后你可以直接注射POCO:
public class ValuesController : Controller
{
private readonly MyConfiguration _myConfiguration;
public ValuesController(MyConfiguration myConfiguration)
{
_myConfiguration = myConfiguration;
}
}
有点简单,因为你可能应该使用一个接口来简化单元测试,但是你明白了。
主要来自这里:http://dotnetcoretutorials.com/2016/12/26/custom-configuration-sections-asp-net-core/
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 我想从URL获取值,以按ID从数据库中选择数据。我想要ID值。 例如,如果我打开数据库, 我想获取id = 12的值。 如果我打开,则 获取数据库中id = 7的值,依此类推。 我有一些代码: 问题答案: 网址: 码:
问题内容: 问题 从地图中获取数据 资料格式 注意 如何从上述结果中获得以下值 1.Event_dtmReleaseDate 2.strID 3.Trans_strGuestList 我试过的 res.Map(“ Event_dtmReleaseDate”); 错误:res.Map未定义(类型map [string] interface {}没有字段或方法Map) res.Event_dtmRel
问题内容: 我有一个枚举,看起来像: 我有一个看起来像的测试班 输出为: 代替 我不确定这里出什么问题了吗?? 问题答案: 您需要 重写枚举的方法:
我想制作一个简单的共享按钮来获取TextView值并共享它,但我不知道怎么做。 代码如下: 而相关的布局是: 我在这里看了文档和一些类似的问题,但找不到我的答案。感谢你对此的帮助。
问题内容: 如果我有,并且为其返回a ,那么如何获取相应的键?我是否必须遍历哈希图?最好的方法是什么? 问题答案: 如果你选择使用Commons Collections库而不是标准Java Collections API,则可以轻松实现此目的。 Collections库中的BidiMap接口是一个双向映射,使你可以将键映射到值(如法线映射),也可以将值映射到键,从而允许你在两个方向上执行查找。ge
我有一个窗体,其中有一个字段用于选择一个方法来对对象进行排序。但是,当我引用该字段以获取它的值时,它就等于呈现此表单的HTML代码。我如何解决这个问题? 我的表单: 我的观点: 的控制台输出: