首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConfigurationSection类在ASP.NET核中作为参数传递的内容

ConfigurationSection类在ASP.NET核中作为参数传递的内容
EN

Stack Overflow用户
提问于 2022-01-14 08:54:36
回答 1查看 175关注 0票数 2

我正在使用ASP.NET Core (.net-6版本).To访问一个连接字符串,我需要在Program.cs中配置服务如下:

但是,在创建实例时,我需要传递一个参数。因为ConfigurationSection有如下所示的构造函数。

问题是我不知道作为参数传递什么。它需要-配置根和该节的路径。我不知道是什么!

EN

回答 1

Stack Overflow用户

发布于 2022-01-14 09:37:27

如果它只是为了获取连接字符串,yo可以在您的Program.cs类中这样做:

代码语言:javascript
复制
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));

在你的appsettings.json里,你需要这样的东西:

代码语言:javascript
复制
{
   /* ... */
   "ConnectionStrings": {
      "DefaultConnection": "you connection string"
   },
   /* ... */
}

编辑:这里是一个更复杂的设置类的完整示例。

EmailSettings.cs类:

代码语言:javascript
复制
namespace MyNameSpace.Configurations
{
    public class EmailSettings
    {
        public string Host { get; set; }
        public int Port { get; set; }
        public bool EnableSSL { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }
}

appsettings.json文件中的相应部分:

代码语言:javascript
复制
"EmailSettings": {
    "Host": "smtp.gmail.com",
    "Port": 587,
    "EnableSSL": true,
    "UserName": "example@gmail.com",
    "Password": "12345"
},

以及在Program.cs类中注册设置类:

代码语言:javascript
复制
builder.Services.Configure<EmailSettings>(builder.Configuration.GetSection("EmailSettings"));

之后,您可以使用依赖项注入调用设置类,如下所示:

代码语言:javascript
复制
public class HomeController : Controller
{
    private EmailSettings _emailSettings;
    
    public HomeController(IOptions<EmailSettings> emailSettings)
    {
        _emailSettings= emailSettings.Value; // Don't forget the .Value
    }
    
    public IActionResult Index()
    {
        // Get the configuration items like that
        string getConfig = _emailSettings.Host;
        return View();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70708113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档