gpt4 book ai didi

c# - appsetting.json 如何在多个项目 .net 核心中工作?

转载 作者:行者123 更新时间:2023-12-05 06:24:05 24 4
gpt4 key购买 nike

我需要 appsettings 如何在 .net core 中工作的指导或解释我有 2 个项目 api 和 dataacess(classlib),如果每个项目都有 appsettings.json 并且都有连接字符串部分。当我从 dataaccess 项目读取连接字符串时,它从托管应用程序读取值,即 api ,所以当我构建一个使用其他也有 appsettings 文件的 classlib 项目的项目时,appsettings 如何工作,是否在构建输出中合并还是托管应用程序覆盖类库或类库设置被完全忽略?感谢您的指导

最佳答案

这是我如何使用 ASP.Net Core 的配置模式读取连接字符串

您可以阅读我的完整代码 here和微软doc

在我们开始做任何事情之前,请确保我们为我们的控制台应用程序安装了 2 个包,因为我还想读取 appSetting.json 中的一些设置

Install-Package Microsoft.Extensions.Options
Install-Package Microsoft.Extensions.DependencyInjection

在我们的 Program.cs 文件中

public static void Main()
{
var serviceCollection = new ServiceCollection();
ConfigureServices(serviceCollection);

// create service provider
var serviceProvider = serviceCollection.BuildServiceProvider();

// entry to run app
serviceProvider.GetService<WebJob>().RunQueue();
serviceProvider.GetService<WebJob>().Run();
Console.ReadLine();
}

private static void ConfigureServices(IServiceCollection serviceCollection)
{
var currentDir = ProjectPath.GetApplicationRoot();

// build configuration
varconfiguration = newConfigurationBuilder()
.SetBasePath(currentDir)
.AddJsonFile("appsettings.json",false)
.Build();

serviceCollection.AddOptions();
serviceCollection.Configure<WebJobSettings>(configuration.GetSection("WebJobSettings"));
// add app
serviceCollection.AddTransient<WebJob>();
}

public class WebJob
{
private readonly IOptions<WebJobSettings> _webJobSettings;
public WebJob(
IOptions<WebJobSettings> webJobSettings)
{
_webJobSettings = webJobSettings;
}
public void Run()
{


GlobalConfiguration.Configuration.UseSqlServerStorage(_webJobSettings.Value.DbConnectionString); // here is how I access the config

using(var server = new BackgroundJobServer())
{
Console.WriteLine("Hangfire Server started. Press any key to exit...");
Console.ReadLine();
}
}
}

关于c# - appsetting.json 如何在多个项目 .net 核心中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57966111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com