加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何读取.net内核中的连接字符串?

发布时间:2020-12-15 06:51:43 所属栏目:百科 来源:网络整理
导读:我想从配置文件只读一个连接字符串,因此 将一个名称为“AppAettings.json”的文件添加到我的项目中,并在其上添加此内容: {"ConnectionStrings": { "DefaultConnection": "Server=(localdb)mssqllocaldb;Database=aspnet- WebApplica71d622;Trusted_Connec
我想从配置文件只读一个连接字符串,因此
将一个名称为“AppAettings.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核心中的字符串变量中?

解决方法

您可以使用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"
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读