最初我的代码是1.0.0-rc1-beta6。
public static IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources.
var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = builder.Build();
var test = Configuration.Get("ASPNET_ENV");
}
现在我想使用1.0.0-rc1-update,代码是:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources.
var builder = new ConfigurationBuilder()
.SetBasePath(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = builder.Build();
var test = Configuration.Get("ASPNET_ENV");
}
" ASP.NET_ENV"来自launchSettings.json文件。
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNET_ENV": "Development"
},
"sdkVersion": "dnx-clr-win-x64.1.0.0-beta6"
},
但我仍然在最后一行得到错误。
' IConfiguration'不包含' Get'的定义和最好的扩展方法重载' SessionExtensions.Get(ISession,string)'需要一个类型为“ISession'”的接收器。
此处也会收到错误。
public void ConfigureServices(IServiceCollection services)
{
// Add MVC services to the services container.
services.AddMvc(); //error
}
我的project.json文件
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Framework.Logging": "1.0.0-beta8",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
"EntityFramework": "6.1.3",
"jqGridWebApi": "1.1.4",
"EnyimMemcached": "2.13.0",
"xunit": "2.2.0-beta1-build3239",
"Moq": "4.2.1510.2205",
"NLog": "2.1.0",
"CryptSharpOfficial": "2.1.0",
"System.Linq.Dynamic": "1.0.4"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5005"
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.configuration": "4.0.0.0",
"System.Data": "4.0.0.0"
}
}
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
},
"configurations": {
"Staging": { }
}
}
感谢您的帮助
答案 0 :(得分:5)
Get方法不再存在, 你必须使用
Configuration.GetSection("key").Value.ToString();
答案 1 :(得分:0)
对于RC1,配置的nuget包位于Microsoft.Extensions.Configuration.Json
而不是Microsoft.Framework.Configuration.Json
。
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources.
var builder = new ConfigurationBuilder()
.SetBasePath(appEnv.ApplicationBasePath)
.AddJsonFile("config.json", false)
.AddEnvironmentVariables();
Configuration = builder.Build();
var test = Configuration.Get<string>("ASPNET_ENV");
}
答案 2 :(得分:0)
安装NuGet软件包:
Microsoft.Extensions.Configuration.Binder
重复:Bind a IConfigurationSection to an complex object without aspnetcore