【问题标题】:Access configuration object (appsettings.json) in library project访问库项目中的配置对象(appsettings.json)
【发布时间】:2020-09-04 13:51:14
【问题描述】:

我启动了一个 .net core web api 项目。 我有一个主要项目和许多其他项目(如 DAL、Common 等)的解决方案。

我想在 Common 项目中创建一个类,它将在我的不同库项目之间共享配置设置(appsettings.json)。 那么,我怎样才能从该类中访问 Iconfiguration 呢?

这是一个好方法吗?或者我应该在主项目中创建一个类以从其他项目中获取配置数据?

【问题讨论】:

标签: c# asp.net-core asp.net-web-api configuration appsettings


【解决方案1】:

一种方法是根据 appsettings.json 文件中的部分/子部分创建配置模型,在 Startup.cs 类中添加配置部分,然后您可以使用内置的依赖注入在您需要的任何地方注入配置。

举例

appsettings.json:

{
  "MyConfiguration" : {
     "Configuration1" : "1",
   }
}

您的配置模型:

public class MyConfiguration 
{
   public int Configuration1 { get; set; }
}

然后在StartupClass中的ConfigureServices方法中你要添加

services.Configure<MyConfiguration>(configuration.GetSection("MyConfiguration"));
services.AddOptions();

当你想在代码中的某处使用该配置时,你只需将它注入到构造函数中,如下所示:

public class SomeClass 
{
  private MyConfiguration MyConfiguration { get; }

  public SomeClass(IOptions<MyConfiguration> myConfigurationOptions)
  {
    MyConfiguration = myConfigurationOptions.Value;
  }

//... more code
}

然后就可以访问了

MyConfiguration.Configuration1

【讨论】:

  • 是的,我认为他是我要遵循的方式,即使我想以另一种方式这样做:)
【解决方案2】:

您可以在您的项目中添加文件as a link

  1. 右键单击您的项目,然后选择"Add" -&gt;"Existing Item..."
  2. 选择要添加到解决方案中的文件
  3. 您无需按 Enter 或单击添加按钮,而是单击 添加按钮右边缘的向下箭头图标,然后选择“Add As Link”。

请参考这个link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多