创建连接文件的最佳实践

我有一个应用程序,我有一些缓存,队列和数据库的配置文件。

public class ServerConfiguration: ConfigurationSection { [ ConfigurationProperty( FOO, DefaultValue = "", IsRequired = false ) ] public string FOO { get { return (string)this[FOO]; } set { this[FOO] = value; } } } 

这是我为配置文件做的,我也有一些inheritance层次结构。

您使用什么来处理配置以及为此目的的最佳实践是什么?

我喜欢并广泛使用Microsoft配置库,但我尝试确保我的应用程序不依赖于它。 这通常涉及让我的配置部分实现一个接口,所以你的例子看起来像:

 public class ServerConfiguration : ConfigurationSection, IServerConfiguration { [ ConfigurationProperty( FOO, DefaultValue = "", IsRequired = false ) ] public string FOO { get { return (string)this[FOO]; } set { this[FOO] = value; } } } public interface IServerConfiguration { public string FOO { get; } //Unless I am updating the config in code I don't use set on the interface } 

现在,只需在代码中使用配置,您只需要担心IServerConfiguration,并且无需更改用法即可更改实现。 有时我只是在开发期间使用硬编码类开始,并且当我实际需要在不同环境中具有不同值时,仅将其更改为配置部分。

如果您使用的是配置部分,则还依赖于ConfigurationManager。 我通过使用IConfigurationProvider [T]将其隐藏在我的代码中,其中T将是IServerConfiguration,你可以在我的博客上看到配置无知的一个例子。

http://bronumski.blogspot.com/search/label/Configuration