c# - leer - ¿Por qué Visual Studio me dice que el método AddJsonFile() no está definido?
configurationmanager.appsettings c# (4)
Estoy desarrollando un proyecto ASP.NET 5 WebAPI usando VS Ultimate 2015 Preview. Estoy tratando de configurar la aplicación de esta manera (los números de línea son solo guías):
1 using Microsoft.Framework.ConfigurationModel;
2
3 public IConfiguration Configuration { get; private set; }
4
5 public Startup()
6 {
7 Configuration = new Configuration()
8 .AddJsonFile("config.json")
9 .AddEnvironmentVariables();
10 }
La línea 8 me da un error: ''Configuración'' no contiene una definición para ''AddJsonFile'' ...
¿Qué está mal?
Debe incluir el paquete
Microsoft.Extensions.Configuration.Json
NuGet si desea llamar al método
.AddJsonFile()
.
Ver: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json
Para leer más, aquí hay un buen tutorial: ASP.NET vNext Moving Parts: IConfiguration .
En caso de que alguien más haya tenido problemas con esto, Microsoft realizó cambios importantes en esta parte del marco el 16 de agosto de 2015. Debe importar las versiones correctas de las dependencias y cambiar a la nueva forma de construir la configuración.
Mi configuración incluye:
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.Framework.Runtime": "1.0.0-*",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
"Microsoft.AspNet.Mvc": "6.0.0-beta7",
"Microsoft.Framework.Configuration": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Json": "1.0.0-*"
},
...
}
Este código, inspirado en esta pregunta, podría ayudarlo de alguna manera:
using System;
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Messenger.Services;
using Microsoft.Framework.Configuration;
using Microsoft.Dnx.Runtime;
using Microsoft.AspNet.Hosting;
namespace Messenger
{
public class Startup
{
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
}
public IConfiguration Configuration { get; set; }
}
...
}
Espero eso ayude.
En project.json deberás agregarlo dentro de las dependencias
dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
Sé que esto es un poco viejo, pero me encontré con este problema al intentar construir mi primer proyecto en blanco Asp.net core 1.0. Para utilizar el método AddJsonFile, debe agregar una referencia a Microsoft.Extensions.Configuration.Json a su proyecto a través de Nuget.
Para instalar la referencia, ejecute el siguiente comando en la consola del administrador de paquetes:
PM> Install-Package Microsoft.Extensions.Configuration.Json