我有两个项目,一个1.1.0 ASP.NET Core项目和一个对4.5.2项目的引用。
我想将值从appsettings.json文件获取到我的4.5.2项目中。appsettings.json文件在核心项目中。
在我的4.5.2项目中尝试了一下,没有运气:
var mailServer = ConfigurationManager.AppSettings["MailServer"];
Run Code Online (Sandbox Code Playgroud)
如何从4.5.2项目中访问值?
ConfigurationManager与具有特定格式且不知道如何读取自定义JSON文件的基于XML的配置文件一起使用。
因为也appsettings.json用于ASP.NET Core项目,所以您可以向Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json包中添加依赖项,并使用“ .NET Core方法”读取设置:
var builder = new ConfigurationBuilder()
.AddJsonFile(@"<path to appsettings.json>");
var configuration = builder.Build();
// configuration["MailServer"]
Run Code Online (Sandbox Code Playgroud)
当然,就像appsettings.json一个简单的JSON文件一样,您始终可以使用任何JSON提供程序直接反序列化。
“约翰麦地那”做得很好,但你忘了解释一点你的解决方案,以便人们更好地理解这个想法。我以同样的方式完成了它,但这里是完整的解释,以便以这种方式使用它......
appsetting.JSON 示例:
{
"Email": {
"Host": "smtp.office365.com",
"Port": "587",
"From": "user@domain.com",
"Username": "user@domain.com",
"Password": "IsAAbbUaa22YTHayTJKv44Zfl18BClvpAC33Dn5p4s="
}
}
Run Code Online (Sandbox Code Playgroud)
POCO 类示例:
namespace AppSettingsTest
{
public class AppSettings
{
public Email Email { get; set; }
}
public class Email
{
public string Host { get; set; }
public int Port { get; set; }
public string From { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
获取 appsetting.JSON 内容示例:
using (var reader = new StreamReader(Directory.GetCurrentDirectory() + "/appsettings.json")) {
var appSettings = JsonConvert.DeserializeObject<AppSettings>(reader.ReadToEnd());
}
Run Code Online (Sandbox Code Playgroud)
注意:只需确保将属性选项“复制到输出目录”中的“始终复制”设置为 JSON 文件。
快乐编码!
| 归档时间: |
|
| 查看次数: |
3621 次 |
| 最近记录: |