如何在.NET Core中读取连接字符串?

我只想从配置文件中读取连接字符串,为此向我的项目中添加一个名称为“ appsettings.json”的文件,并在其上添加以下内容:

{

"ConnectionStrings": {

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-

WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"

},

"Logging": {

"IncludeScopes": false,

"LogLevel": {

"Default": "Debug",

"System": "Information",

"Microsoft": "Information"

}

}

}

在ASP.NET上,我使用了以下方法:

 var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

现在如何在C#中读取“ DefaultConnection”并将其存储在.NET Core中的字符串变量中?

回答:

您可以使用GetConnectionString扩展方法执行此操作:

string conString = Microsoft

.Extensions

.Configuration

.ConfigurationExtensions

.GetConnectionString(this.Configuration, "DefaultConnection");

System.Console.WriteLine(conString);

或具有DI的结构化类:

public class SmtpConfig

{

public string Server { get; set; }

public string User { get; set; }

public string Pass { get; set; }

public int Port { get; set; }

}

启动:

public IConfigurationRoot Configuration { get; }

// This method gets called by the runtime. Use this method to add services to the container.

public void ConfigureServices(IServiceCollection services)

{

// http://developer.telerik.com/featured/new-configuration-model-asp-net-core/

// services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));

Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure<SmtpConfig>(services, Configuration.GetSection("Smtp"));

然后在家庭控制器中:

public class HomeController : Controller

{

public SmtpConfig SmtpConfig { get; }

public HomeController(Microsoft.Extensions.Options.IOptions<SmtpConfig> smtpConfig)

{

SmtpConfig = smtpConfig.Value;

} //Action Controller

public IActionResult Index()

{

System.Console.WriteLine(SmtpConfig);

return View();

}

在appsettings.json中具有以下内容:

"ConnectionStrings": {

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"

},

"Smtp": {

"Server": "0.0.0.1",

"User": "user@company.com",

"Pass": "123456789",

"Port": "25"

}

以上是 如何在.NET Core中读取连接字符串? 的全部内容, 来源链接: utcz.com/qa/431446.html

回到顶部