在没有启动文件的 ASP.NET 核心库项目中,我应该将连接字符串放在哪里?

Where do I place the connection string in an ASP.NET Core library project that has no startup file?

我有 asp.net 个核心库项目。

我想给它添加连接字符串。我这里没有启动 class。我需要在哪里放置连接字符串以及如何获取它?

在 dotnet 核心中,您可以使用 json 文件管理配置,这是配置应用程序的多种方式之一。

根据 dotnet core configuration documentation 你可以简单地做(从 link 参考复制)

using Microsoft.Extensions.Configuration;
using System;
using System.IO;

// Add NuGet <package id="Microsoft.Extensions.Configuration" and
// <package id="Microsoft.Extensions.Configuration.Json"
// .NET Framework 4.x use the following path:
//.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), @"..\.."))

public class Program
{
    static public IConfigurationRoot Configuration { get; set; }
    public static void Main(string[] args = null)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json");

        Configuration = builder.Build();

        Console.WriteLine($"option1 = {Configuration["option1"]}");
        Console.WriteLine($"option2 = {Configuration["option2"]}");
        Console.WriteLine(
            $"option1 = {Configuration["subsection:suboption1"]}");
    }
}

然后在您的 appsettings.json 文件中您可以添加:

{
    "ConnectionStrings": {
        "BloggingDatabase": "Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
    },
}

并使用 Configuration.GetConnectionString("BloggingDatabase")

在代码中访问它

我也可以推荐阅读 dotnet core documentation regarding connection strings

编辑:正如评论员在您的 post 中提到的那样,不要将连接字符串和配置文件添加到您的库代码中 - 从您的控制台应用程序或 Web 应用程序执行此操作!

dotnet 核心的其他配置形式包括 user secrets, environment variables,可能还有 XML 文件或其他形式的存储,如评论中所指出的