2017-10-04 125 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); 
    }