.net 类库(.dll)应该从何处读取其配置?
我已经在从事一个.net项目,但我认为这个问题可以应用于任何编程语言/框架 问题是阅读类库配置的良好实践是什么。我可以想到以下几种选择:.net 类库(.dll)应该从何处读取其配置?,.net,dll,configuration,web-config,class-library,.net,Dll,Configuration,Web Config,Class Library,我已经在从事一个.net项目,但我认为这个问题可以应用于任何编程语言/框架 问题是阅读类库配置的良好实践是什么。我可以想到以下几种选择: 从应用程序域的配置文件读取。例如,对于.net web app,从web.config读取 读取为此类库创建的特定自定义文件。类似于为类库创建xml文件并将配置放在其中 调用方应将所需的配置传递给类库(通过类构造函数)。因此,在这种情况下,类lib不会直接从配置文件中读取,而是希望调用方发送所需的信息 有什么想法/偏好吗?标准做法似乎是这样的 从应用程序域的配
有什么想法/偏好吗?标准做法似乎是这样的 从应用程序域的配置文件中读取。例如,对于.net web app,请从web.config读取 通常情况下,您有一个特定于您的库的配置部分,这里有大量这种做法的示例(nhibernate、log4net、spring.net等)。本节可以指向一个单独的文件,以使您的文件尽可能短,例如:
<log4net configSource="Config\log4net.config.xml" />
编辑
我同意Jeffrey Hantin的说法,这实际上取决于您尝试执行的配置类型
应在配置文件上设置“动态”设置,以允许灵活性和易于更改。其他一些,如nhibernate映射,更适合以“流畅”的方式(通过代码)应用
流畅的配置减少了打字错误的可能性,但它们并不总是合适的。令人惊讶(或毫不奇怪?)这取决于具体情况
从开发人员的角度来看,通过库API进行调用方提供配置更可取,因为它允许库在更广泛的上下文中使用,而不依赖于库的托管方式。提供一个可以从应用程序域或私有文件中提取的配置加载器是非常重要的,如果不执行任何配置,则可以合理使用默认值是一个健全的保护程序
从操作员的角度来看,能够覆盖开发人员提供的任何设置也很有用,因为它们在您的环境中没有意义。但是,我不清楚如果开发人员有意将环境的形状强加给您,这会如何工作
我认为最好的折衷办法是考虑到这三种可能性