C# 获取服务.net核心中的appsettings.json值
我有C# 获取服务.net核心中的appsettings.json值,c#,.net,asp.net-core,.net-core,appsettings,C#,.net,Asp.net Core,.net Core,Appsettings,我有appsettings.json文件,我想在其中声明文件的路径 “路径”:{ “文件”:“C:/file.pdf” } 我想在我的服务中访问此值,我尝试这样做: public class ValueService: IValueService { IConfiguration Configuration { get; set; } public MapsService(IConfiguration configuration) { this.Conf
appsettings.json
文件,我想在其中声明文件的路径
“路径”:{
“文件”:“C:/file.pdf”
}
我想在我的服务中访问此值,我尝试这样做:
public class ValueService: IValueService
{
IConfiguration Configuration { get; set; }
public MapsService(IConfiguration configuration)
{
this.Configuration = configuration;
}
public string generateFile()
{
var path = Configuration["Paths:file"] ;
}
}
但是,对于var路径
Startup.cs
文件声明了appsettings.json
,因为它从那里获取连接字符串。是否可以在startup.cs
类之外访问这些值?您应该在ConfigureServices中注册配置:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton<IConfiguration>(Configuration);
}
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddSingleton(配置);
}
您可以查看我的详细信息。基本上,我想阅读电子邮件设置,我的电子邮件设置的结构如下所示
"EmailSettings": {
"MailServer": "",
"MailPort": "",
"Email": "",
"Password": "",
"SenderName": "",
"Sender": "",
"SysAdminEmail": ""
}
然后我需要定义一个这样的类来保存appSetting中的所有信息
public class EmailSettings
{
public string MailServer { get; set; }
public int MailPort { get; set; }
public string SenderName { get; set; }
public string Sender { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string SysAdminEmail { get; set; }
}
最后,我将注入我的服务类或任何你想要的东西
private readonly IOptions<EmailSettings> _emailSetting;
public EmailSender(IOptions<EmailSettings> emailSetting)
{
_emailSetting = emailSetting;
}
可以找到电子邮件发件人文件
如果你有任何问题,请告诉我
**请注意,这个示例帮助您阅读类库等服务类内部的应用设置,或者我们可以从主mvc应用程序外部访问应用设置数据。您不必单独包含
IConfiguration
,它应该已经包含在内(在AddMvc
?)@STDMP实际上,AddMvc只是注册mvc中间件,而不是配置
var something = _emailSetting.Value.SenderName