ASP.NET Core RC2配置自定义AppSettings

9

假设我在appsettings.json文件中设置了以下内容:

"MySettings": {
    "SmtpHost": "smtp.mydomain.com"",
    "WebService": "http://localhost:1337"
}

我有一个类来保存以下设置内容。
public class MySettings
{
    public string SmtpHost{ get; set; }
    public string WebService{ get; set; }
}

使用RC1,我会在ConfigureServices()方法中使用下面的代码行来加载这些配置设置。

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

但是在 RC2 版本中,同一行代码会出现以下错误:

无法将 'MicrosoftExtensions.Configuration.IConfigurationSection' 转换为 'System.Action<code><MySettings></code>'。

2个回答

11

您只需要在 project.json 中引用一个不同的包,使用 RC2 版本。只需添加引用到 "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final" 包,您就可以获得所需的正确扩展方法。

"dependencies": {
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final"
}

像ASP.NET Core RC2的几个更改一样,有很多重新整理和移动的东西。我制作了一个迁移指南,您可能会发现它很有用。


1
哈哈,我发布这个问题是想自己回答它,因为我在SO上找不到答案。所以其他可能遇到同样问题的人可以快速得到答案。你比我更快地解决了它。干得好! - Clint B
@ClintB,我在.NET Slack聊天室向社区指出了这一点。一开始有很多混淆。我很高兴我能帮忙。 - David Pine
谢谢你提供的链接!我已经收藏了它并会好好阅读。我一直在犹豫是给你还是给Joe采纳答案。但你的迁移指南让你成为胜者。 - Clint B
1
@ClintB,谢谢。顺便说一下 - 他也在同一个 Slack 房间里,所以他可能最初是从我这里得到答案的 :P - David Pine

3

您需要添加该包:

"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final",

请使用以下方法确保您已经拥有它:

using Microsoft.Extensions.Configuration;

哈哈。我发了这个问题是打算自己回答的,因为在SO上找不到答案。所以其他可能遇到同样问题的人可以快速得到答案。你比我快了。干得好! - Clint B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接