我正在创建一个Nuget包,我正在我的类库中工作.我需要访问appsetting.json或config.json才能访问默认连接字符串.
将实际工作代码迁移到新版本的ASP.NET vNext的最佳方法是什么?
我在这个问题上已经读过它,但对我来说这是一个很好的解决方案.
工作代码:
/// <summary>
/// Retrieves the default connectionstring from the App.config or Web.config file.
/// </summary>
/// <returns>Returns the default connectionstring from the App.config or Web.config file.</returns>
public static string GetDefaultConnectionString()
{
return ConfigurationManager.ConnectionStrings[DefaultConnectionstringName].ConnectionString;
}
Run Code Online (Sandbox Code Playgroud)
旧类库使用app.config自动读取配置值.在新的类库中,您必须添加此功能.Startup.cs用于读取app.settings在类库中,您还必须添加Startup.cs.
在你的project.json
确保你有依赖
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final"
Run Code Online (Sandbox Code Playgroud)
添加一个过appsettings.json
孔add - new item
.过滤json
{
"Data": {
"MyDb": {
"ConnectionString": "Server=.;Database=MyDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以调用您的连接MyDb或DefaultConnection.
添加一个Startup.cs
来放置代码来读取appsettings.json
.
请参阅下面的Startup
构造函数方法.
例如
using Microsoft.Data.Entity;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace MyProject
{
public class Startup
{
public IConfigurationRoot Configuration { get; set; }
public Startup()
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration["Data:MyDb:ConnectionString"]));
}
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中引用
Configuration["Data:MyDb:ConnectionString]
Run Code Online (Sandbox Code Playgroud)
将返回一种IConfigurationRoot,而不是字符串.
要获取字符串值,请尝试以下操作
string connection = Configuration.Get<string>("Data:MyDb:ConnectionString");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5796 次 |
最近记录: |