使用WebApi 2时,我的web.config是
<connectionStrings>
<add name="RavenHQ" connectionString="Url=http://localhost:8080;Database=ModelFarmDb" />
</connectionStrings>
对于ASP.NET 5.0,我无法解决如何编写config.json文件来做同样的事情。
我已经尝试了
{
"Data": {
"RavenHQ": {
ConnectionString: "Url=http://localhost:8080;Database=ModelFarmDb"
}
}
}
但它不起作用。有关如何直接将web.config部分映射到config.json的任何建议,以免破坏其他假定web.config的库?
该应用程序在本地IIS Express下运行,是Azure上的Web应用程序。
非常感谢!
答案 0 :(得分:2)
您可以通过不同的方式在asp.net 5.0中完成此操作。我在这个例子中使用了json文件。如果您需要添加xml文件,请使用这些包Microsoft.Framework.Configuration.Xml
并使用.AddXmlFile()
方法
此示例使用beta 7
创建AppSetting类
public class AppSetting
{
public string Setting1 { get; set; }
public string Setting2 { get; set; }
}
在你的启动文件中添加带有此示例配置的json文件是call config.json
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var builder = new ConfigurationBuilder()
.SetBasePath(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddXmlFile("thefilename")
.AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfiguration Configuration { get; set; }
然后,您需要添加AppSetting类的应用程序服务,以便可以注入它 供以后使用
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
然后在你的控制器或你需要配置的地方注入IOptions<AppSettings>
public class SampleController : Controller
{
private readonly AppSettings _appSettings;
public SampleController(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings.Value;
}
}
这就是json的样子
{
"AppSetting": {
"Setting1": "Foo1",
"Setting1": "Foo1"
}
}
我在github
中从live.asp.net获取了这些代码