我試圖訪問存儲在我的項目中的Settings.settings中的連接字符串。運行Visual Studio 2017 C#ASP.NET核心。可以訪問Properties
命名空間,但它包含的唯一東西是Resources
;那裏不存在Settings
。與此相關的每個其他問題都涉及到Properties
不可用,但這不是這種情況。Properties.Settings在ASP.NET Core中不可用
也許有人遇到過這個問題?或者,也許這不是我應該存儲連接字符串的地方?
我試圖訪問存儲在我的項目中的Settings.settings中的連接字符串。運行Visual Studio 2017 C#ASP.NET核心。可以訪問Properties
命名空間,但它包含的唯一東西是Resources
;那裏不存在Settings
。與此相關的每個其他問題都涉及到Properties
不可用,但這不是這種情況。Properties.Settings在ASP.NET Core中不可用
也許有人遇到過這個問題?或者,也許這不是我應該存儲連接字符串的地方?
您應該閱讀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
要添加什麼@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