【问题标题】:What is the proper way to pass config/parameters to class library? [closed]将配置/参数传递给类库的正确方法是什么? [关闭]
【发布时间】:2018-06-13 02:34:57
【问题描述】:

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

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

【问题讨论】:

  • 正确的方式是config文件。
  • DI 接口是我的投票
  • 这完全取决于你和你的图书馆做什么。考虑任何记录器服务。大多数记录器都可以通过配置文件中的属性进行配置,或者我们可以设置参数。恕我直言,库的使用通常很容易基于它可以配置为基本任务。
  • 在 dll 中使用配置文件时我会非常小心,因为它会使其更难使用 - 每个使用此 dll 的应用程序都必须了解所需的特定配置。您最好公开一个用于设置可配置部分的 API(无论是使用构造函数/方法参数,还是使用属性,甚至使用 MyDllConfig 结构),并让调用应用程序来决定在配置文件中放入什么以及要做什么编码。
  • @Zohar Peled 但是您会将 API 配置的那些设置存储在哪里?将它们序列化并保存到文件,存储为静态参数..?

标签: c# .net .net-core config app-config


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多