2017-10-04 124 views
0

我有一个专为发送电子邮件而设计的.net核心应用程序,用于发送电子邮件的电子邮件和密码存储在json文件中。在开发过程中,我能够正常发送电子邮件,但是当我发布应用程序时,无法从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):

{ 
    "option1": "[email protected]", 
    "option2": "something", 
    } 

回答

1

使用IConfiguration读取配置数据

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

public void ReadFromJson() 
    { 
var email =_iconfiguration["option1"]; 
var email =_iconfiguration["option1"]; 
    } 

要把它放到你的启动方法

services.Configure<ClassName>(Configuration); 

你把ReadFromJson在启动时,不是一个好的做法做,创建新课程可以读取数据并从该访问点访问您想要的任何地方

+0

谢谢,我重写我的代码,我把它放在一个类与ReadFromJson方法,仍然给了我一个空字符串在电子邮件 –

+0

我想念一个代码,你可以检查现在 –

+0

感谢它的工作现在 –

0

你为什么在这里使用字符串interoplation?你有没有尝试

var option1 = Configuration.GetValue<string>("option1"); 
+0

谢谢,但我仍然没有读取应用程序发布后的值 –

0
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); 
    }