Так что я действительно застрял на 2 дня. Я искал через stackoverflow и Google, следуя многим руководствам, но не помогло: /. Поэтому я пытаюсь извлечь данные из json-файла appsettings, так как я буду хранить там данные в виде моего стандартного файла настроек.
Я хочу прочитать массив json-> iv ', который называется мой раздел "Locations" и мой ключ "Location", где мои значения - это массив json. На данный момент в этом массиве есть только названия автомобильных компаний, а не реальные данные. Реальные данные - это пути к файлам.
Я использую vs2017 с .net core 2.0 или 2.1
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; set; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(config =>
{
config.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
services.AddOptions();
services.AddSingleton<IConfiguration>(Configuration);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddEnvironmentVariables()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Configuration = builder.Build();
}
Это мой стартап-класс.
"Locations": {
"Location": [ "Ford", "BMW", "Fiat" ]
},
мой JSON.
namespace MediaCenter.Models
{
public class Locations
{
public List<string> location { get; set; }
}
}
Мой класс для него, так как я прочитал, что он необходим для .net core 2.0 для системы DI.
public IActionResult Settings()
{
var array = _configuration.GetSection("Locations").GetSection("Location");
var items = array.Value.AsEnumerable();
return View();
}
данные моего контроллера.
Для записи, когда я делаю точку останова в "массиве переменных", я могу видеть в поставщиках и членах, что мои значения хранятся внутри, так что, я думаю, я не делаю правильный вызов массива? Во всяком случае, было бы очень полезно, если бы я получил хороший рабочий ответ, так как я застрял: (.