【问题标题】:Custom application settings自定义应用程序设置
【发布时间】:2011-06-08 02:58:34
【问题描述】:
我希望能够拥有一个在整个应用程序中都可用的设置类,但是我仍然希望能够测试设置对象是否被填充。大多数设置来自注册表。
目前我有这个,但我不确定在哪里填充它,以便我可以模拟用于填充它的服务。
public class Program {
public static Settings SystemSettings = new SystemSettings();
public void Main(string[] args) {
SystemSettings = new RegistryService().GetRegSettings();
}
}
对此有任何想法都会很棒。
【问题讨论】:
标签:
c#
static
settings
application-settings
【解决方案1】:
创建一个单例类,你的应用程序中的所有类都可以访问它
public class Settings
{
private static Settings systemSettings;
public static Settings SystemSettings
{
get
{
if (systemSettings == null)
systemSettings = new Settings();
return systemSettings;
}
}
public int SettingValue1{ get; set; }
private Settings()
{
SettingValue1 = 1;//from registery or somewhere
}
}
ans 使用这个类很容易
int k = Settings.SystemSettings.SettingValue1;
【解决方案2】:
您需要做的是抽象您的底层设置存储,在这种情况下是 Windows 注册表,并让您的设置控制器调用您的抽象。
最好的方法是使用构造函数注入您的存储抽象。这样您就可以模拟您的抽象(Windows 寄存器),这将允许您测试您的设置群体。