如何在.net Standard项目中存储配置信息

时间:2019-05-24 06:57:09

标签: .net .net-standard .net-standard-2.0

.net Standard中似乎没有配置app.config或web.config。 网址,ID等设置可以存储在.net Standard类库项目中的什么位置。

该项目是自包含的,并且从实现者中提取信息。它是一个客户端,使用它的应用程序无需配置其命中的端点。

2 个答案:

答案 0 :(得分:0)

您不能在没有弯曲和扭曲的情况下将app.config文件添加到类库项目中。另外,将配置添加到库中也没有任何意义。而是将配置添加到使用您的库的项目中。

类库通常没有配置,因此它们可以适应调用项目提供的配置。

答案 1 :(得分:0)

直接将类库绑定到配置文件中,使得很难在代码中覆盖该配置。 .NET Framework中创建的许多库都遭受了此问题的困扰,当尝试使用现代依赖项注入技术配置库时,该问题变得最为痛苦。微软故意使这在.NET Standard中变得更加困难。

与其使用文件配置现代库,不如让它像其他任何依赖项一样,通过对象构造函数传入。如果您的配置URL具有逻辑默认值,则只需将这些默认值放入配置对象中即可。

public class MyClassConfiguration
{
    public string Url { get; set; } = "https://example.com/some-default-location";
}

使库的使用者容易吞咽的一种方法是,在DI友好的构造函数注入类中创建业务逻辑,然后创建一些专门用于构造它们并提供默认值的Facade类。完成此操作的一种好方法是使用Mark Seemann的DI-Friendly Library post中所述的流畅的构建器模式。

var foo =
   new FooBuilder().WithUrl("https://example.com/override-the-default").Create();

然后,将配置保留为代码还是从配置文件中读取配置并将其传递给您的库,这取决于库的使用者。