我只想从配置文件中读取连接字符串,为此向我的项目中添加一个名称为“ 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" }