Asp.net 如何从json文件中读取值

Asp.net 如何从json文件中读取值,asp.net,.net,json,.net-core,Asp.net,.net,Json,.net Core,我有一个.net核心应用程序,用于发送电子邮件,电子邮件和用于发送电子邮件的密码存储在json文件中。在开发过程中,我能够正常发送电子邮件,但是当我发布应用程序时,无法从json文件中读取电子邮件和密码。代码中有错误吗 public class Startup { public static IConfiguration Configuration { get; set; } public Startup(IHostingEnvironment env) {

我有一个.net核心应用程序,用于发送电子邮件,电子邮件和用于发送电子邮件的密码存储在json文件中。在开发过程中,我能够正常发送电子邮件,但是当我发布应用程序时,无法从json文件中读取电子邮件和密码。代码中有错误吗

public class Startup
{
    public static IConfiguration Configuration { get; set; }

    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()

            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            .AddEnvironmentVariables();

        Configuration = builder.Build();
    }

     public void ReadFromJson()
    {
            var email = ($"{Configuration["option1"]}");
            var password = ($"{Configuration["option2"]}");
            var path = ($"{Configuration["option3"]}");
            File.WriteAllText("/var/hey.txt",email);
   }
Json文件(appsettings.Json):


为什么在这里使用字符串互插?你试过了吗

var option1 = Configuration.GetValue<string>("option1");
var option1=Configuration.GetValue(“option1”);

使用IConfiguration读取配置数据

IConfiguration _iconfiguration;  
public ConstructorForClass(IConfiguration iconfiguration) {  
  _iconfiguration = iconfiguration;  
}

public void ReadFromJson()
    {
var email =_iconfiguration["option1"];  
var email =_iconfiguration["option1"];  
   }
把这个放到你的启动方法中

services.Configure<ClassName>(Configuration); 
services.Configure(配置);

您在启动时将ReadFromJson放入,这不是一个好的做法,创建新类来读取数据,并从该类访问到您想要的任何地方

谢谢,但在发布应用程序库之后,我仍然没有读取值,我重写了我的代码,并用ReadFromJson方法将其放入一个类中,但它仍然在Email中给了我一个空字符串,但我使用了。。。。服务。配置(配置);而不是service.AddSingleton(配置);
protected void Button1_Click(object sender, EventArgs e)
    {
        jsonstring = client.DownloadString("http://maps.googleapis.com/maps/api/geocode/json?address=Kokuvil");
        dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);

        Response.Write(dynObj.results[0].address_components[1].long_name);
    }
protected void Button1_Click(object sender, EventArgs e)
    {
        jsonstring = client.DownloadString("http://maps.googleapis.com/maps/api/geocode/json?address=Kokuvil");
        dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);

        Response.Write(dynObj.results[0].address_components[1].long_name);
    }