[英].NET Core API call to a method in a .NET Project is saying it can't find Connection strings in the app.config file
我有一个 Core API 项目,它最初是从控制器访问数据库(不好的做法),所以我将数据访问方法移动到现有的 .NET 类库中,其中连接字符串存储在 app.config 文件中。 相同的连接字符串也位于 Core API 项目的 appsettings.json/appsettings.development.json 文件夹中。
然后我尝试从我的 API 访问这个新的 .NET 类库方法(包含对数据库的调用),但我收到了“在 app.config 中找不到‘connectionstringname’”错误。 我是 .NET 的新手,但一位同事说 app.config 可能没有被拉入 API 的 bin 文件夹。 有没有人遇到过 .NET Core 项目难以与 .NET 项目的连接字符串通信的问题,我该如何解决这个问题?
1.) 我尝试将 app.config 文件粘贴到 API 的 bin 文件夹中,但无济于事(同样的错误。)
我已经在 SO 上看到了一些答案,但未能成功实施,因此如果之前已经回答过,我深表歉意。
您需要完全抛弃对配置设置的 dot-net-framework 理解。
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-5.0
请注意 url 的值。
aspnet核心基础配置
在 DotNet-Core 中:强烈建议创建一流的对象。 (配置值持有人-poco)
在您的 Ioc 注册中,将 config-value-holder-poco 注入 Ioc(也就是 dn-core 中的“servicecollection”)。
然后构造函数注入您的设置 poco 持有人。
根据文章。
Json“部分”
"Position": {
"Title": "Editor",
"Name": "Joe Smith"
}
一流的 config-value-holder-poco。
public class PositionOptions
{
public const string Position = "Position";
public string Title { get; set; }
public string Name { get; set; }
}
国际奥委会注册。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<PositionOptions>(Configuration.GetSection(
PositionOptions.Position));
}
构造函数注入:
public class Test2Model : PageModel
{
private readonly PositionOptions _options;
public Test2Model(IOptions<PositionOptions> options)
{
_options = options.Value;
}
public ContentResult OnGet()
{
return Content($"Title: {_options.Title} \n" +
$"Name: {_options.Name}");
}
}
现在您可以利用“刷新率”内置选项来处理这些问题。
https://medium.com/@kmar.ayush/eli5-ioptions-vs-ioptionssnaphot-vs-ioptionsmonitor-fab1d7e26a75
IOptions 与 IOptionsSnaphot 与 IOptionsMonitor
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.