簡體   English   中英

.NET Core API 調用 .NET 項目中的方法表示在 app.config 文件中找不到連接字符串

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM