Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向类库传递配置/参数的正确方法是什么?_C#_.net_.net Core_Config_App Config - Fatal编程技术网

C# 向类库传递配置/参数的正确方法是什么?

C# 向类库传递配置/参数的正确方法是什么?,c#,.net,.net-core,config,app-config,C#,.net,.net Core,Config,App Config,我正在创建一个类库,供许多不同的客户机使用。我希望它是可配置的,例如,我希望能够在客户端中为库的临时文件指定路径 我想知道做这件事的“正确”方法是什么?有没有办法从类库中读取(继承)客户端的appconfig?它应该通过依赖注入来传递吗?最简单的解决方案是通过参数传递它,但我的库必须传递它或将其存储在静态变量中,但这不是一个非常干净的解决方案 有没有办法从类库中读取(继承)客户端的appconfig 如果使用从库中的.config或appsettings读取配置的常规方法,它将自动获取所用应用程

我正在创建一个类库,供许多不同的客户机使用。我希望它是可配置的,例如,我希望能够在客户端中为库的临时文件指定路径

我想知道做这件事的“正确”方法是什么?有没有办法从类库中读取(继承)客户端的appconfig?它应该通过依赖注入来传递吗?最简单的解决方案是通过参数传递它,但我的库必须传递它或将其存储在静态变量中,但这不是一个非常干净的解决方案

有没有办法从类库中读取(继承)客户端的appconfig

如果使用从库中的.config或appsettings读取配置的常规方法,它将自动获取所用应用程序的.config或appsettings文件


请注意,这将降低使用库的透明度,因为它需要特定的配置项才能正常工作。我会确保它有默认值,用于您可能想要在配置中设置的所有设置。

正确的方法是
config
file.DI via interface是我的选择它完全取决于您和您的库所做的事情。考虑任何日志记录服务。大多数记录器都可以通过配置文件中的属性进行配置,也可以设置参数。由于库的使用通常很容易,因此可以为基本任务配置库。我会非常小心地在dll中使用配置文件,因为它会使使用变得更困难-使用此dll的每个应用程序都必须知道所需的特定配置。您最好公开一个用于设置可配置部分的API(无论是使用构造函数/方法参数,还是使用属性,甚至是使用MyDllConfig结构),并让调用的应用程序决定在配置文件中放置什么以及硬编码什么。@Zohar Peled但您将在哪里存储由API配置的设置?将它们序列化并保存到文件,存储为静态参数。。?