2016-05-25 33 views
9

说我把下面的设置放在appsettings.json中。ASP.NET Core RC2配置自定义AppSettings

"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 <MySettings>'。

回答

11

你只需要引用不同的包RC2。在您的project.json只需添加对"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final"包的引用,即可获得所需的正确扩展方法。

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

像几个与ASP.NET核心RC2的变化,有很多重新包装和物体移动。我放了一个migration guide,你可能会觉得有用。

+1

大声笑。我发布了这个问题,目的是自己回答,因为我无法在SO上找到答案。所以其他遇到同样问题的人可以得到快速回答。你击败了我。不错的工作! –

+0

@ClintB,我指出了.NET社区中闲置的空间。关于它最初的困惑很多。我很高兴我能提供帮助。 –

+0

感谢您的链接!我为它加书签,并将其阅读。我试图决定由谁来给予你和乔之间接受的答案。你的移民指南让你成为赢家。 –

3

您需要添加软件包:

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

,并确保您在本使用:

using Microsoft.Extensions.Configuration; 
+0

大声笑。我发布了这个问题,目的是自己回答,因为我无法在SO上找到答案。所以其他遇到同样问题的人可以得到快速回答。你击败了我。不错的工作! –