类库(.dll)应该从哪里读取它的配置?

kap*_*tan 5 .net dll configuration class-library web-config

我已经在研究.net项目,但我认为这个问题适用于任何编程语言/框架.

问题是读取类库配置的好方法是什么.我可以想到以下选项:

  1. 从应用程序域的配置文件中读取.例如,在.net web app的情况下,从web.config中读取
  2. 从为此类lib创建的特定自定义文件中读取.就像为类lib创建一个xml文件并将配置放在那里一样.
  3. 调用者应该传递类lib所需的配置(通过类构造函数).因此,在这种情况下,类lib不直接从配置文件中读取,而是希望调用者发送所需的信息.

任何想法/偏好?

Jef*_*tin 3

令人惊讶(或不足为奇?)这取决于。

开发人员的角度来看,让调用者通过库 API 提供配置是更可取的,因为它允许在更广泛的上下文中使用库,而不依赖于库的托管方式。提供一个可以从应用程序域或私有文件中提取的配置加载器是很重要的,如果不执行配置,则合理可用的默认值是一个理智的保护者。

操作员的角度来看,能够覆盖开发人员提供的任何设置也很有用,因为它们在您的环境中没有意义。不过,我不清楚如果开发人员故意将环境的形状强加给你,这会如何运作。

我认为最好的妥协是允许所有三种可能性,就像 log4net 所做的那样