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

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

问题是我不知道作为参数传递什么。它需要-配置根和该节的路径。我不知道是什么!
发布于 2022-01-14 09:37:27
如果它只是为了获取连接字符串,yo可以在您的Program.cs类中这样做:
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));在你的appsettings.json里,你需要这样的东西:
{
/* ... */
"ConnectionStrings": {
"DefaultConnection": "you connection string"
},
/* ... */
}编辑:这里是一个更复杂的设置类的完整示例。
EmailSettings.cs类:
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文件中的相应部分:
"EmailSettings": {
"Host": "smtp.gmail.com",
"Port": 587,
"EnableSSL": true,
"UserName": "example@gmail.com",
"Password": "12345"
},以及在Program.cs类中注册设置类:
builder.Services.Configure<EmailSettings>(builder.Configuration.GetSection("EmailSettings"));之后,您可以使用依赖项注入调用设置类,如下所示:
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();
}
}https://stackoverflow.com/questions/70708113
复制相似问题