2017-06-21 20 views
0

我試圖訪問存儲在我的項目中的Settings.settings中的連接字符串。運行Visual Studio 2017 C#ASP.NET核心。可以訪問Properties命名空間,但它包含的唯一東西是Resources;那裏不存在Settings。與此相關的每個其他問題都涉及到Properties不可用,但這不是這種情況。Properties.Settings在ASP.NET Core中不可用

也許有人遇到過這個問題?或者,也許這不是我應該存儲連接字符串的地方?

回答

1

您應該閱讀appsettings.json的連接字符串。像下面這樣:

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=mydb;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 
    ... 
} 

然後,您可以讀取它的啓動類,見下面的鏈接(向下滾動到文章的ASP.NET核心部分)。

https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings

0

要添加什麼@Samuel說:如果你不使用EF(或許衣冠楚楚或類似的東西)

,您可以通過配置對象訪問連接字符串:

你Startup.cs會是這個樣子:

public class Startup 
{ 
    public Startup(IHostingEnvironment env) 
    { 
     var builder = new ConfigurationBuilder() 
      .SetBasePath(env.ContentRootPath) 
      .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) 
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
      .AddEnvironmentVariables(); 
     Configuration = builder.Build(); 
    } 

    public IConfigurationRoot Configuration { get; } 

    public void ConfigureServices(IServiceCollection services) 
    { 
     //Register this so it can be injected in you application later. 
     services.AddSingleton(Configuration); 
    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     //... 
     app.UseMvc(); 
    } 
} 

然後可以使用DI並注入配置objec t等這樣:

public class YourClass 
{ 
    IConfigurationRoot _config; 
    public YourClass(IConfigurationRoot config) 
    { 
     _config = config; 
    } 

    public void SomeMethod() 
    { 
     var connStr = _config["ConnectionStrings:DefaultConnection"]; 
    } 
} 

看看下面的鏈接,以更好地瞭解Asp.Net核心配置:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration

相關問題