我已经在研究.net项目,但我认为这个问题适用于任何编程语言/框架。
问题是用于读取类库配置的良好实践是什么。我可以想到以下几个选项:
任何想法/偏好?
答案 0 :(得分:3)
令人惊讶(或毫不奇怪?)取决于它。
从开发人员的角度来看,通过库API提供调用者供应配置是首选,因为它允许库在更广泛的上下文中使用,而不依赖于库的方式主办。提供可以从应用程序域或私有文件中提取的配置加载程序是非常重要的,如果不执行任何配置,则合理可用的默认值是一个理智的保护程序。
从运营商的角度来看,能够覆盖开发人员提供的任何设置也很有用,因为它们在您的环境中没有意义。我不清楚如果开发人员故意试图强迫你的环境形状,这可能会如何工作。
我认为最好的妥协是允许所有三种可能性as log4net does。
答案 1 :(得分:2)
标准做法似乎是这个
从应用程序域的配置文件中读取。例如,在.net web app的情况下,请从web.config中读取
如果您通常有一个特定于您的库的配置部分,那么这个实践的大量示例(nhibernate,log4net,spring.net等等)。此部分可以指向一个单独的文件,以使文件尽可能短,例如:
<log4net configSource="Config\log4net.config.xml" />
修改强>
我同意@Jeffrey Hantin,它实际上取决于你想要做的配置类型。
应在配置文件上放置“动态”设置,以便灵活轻松地进行更改。其他一些,如nhibernate映射,更适合以“流利”的方式应用(通过代码)。
流畅的配置减少了拼写错误的可能性,但它们并不总是适合。