[英].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.