我希望能够拥有一个可在整个应用程序中使用的Settings类,但我仍然希望能够测试设置对象是否已填充。大多数设置来自注册表。
目前我有这个,但我不知道在哪里填充,以便我可以模拟用于填充它的服务。
public class Program {
public static Settings SystemSettings = new SystemSettings();
public void Main(string[] args) {
SystemSettings = new RegistryService().GetRegSettings();
}
}
对此的任何想法都会很棒。
答案 0 :(得分:0)
您需要做的是抽象您的底层设置存储,在这种情况下是Windows注册表,并让您的设置控制器调用您的抽象。
最好的方法是使用构造函数注入存储抽象。这样你可以嘲笑你的抽象(Windows注册),这将允许你测试你的设置人口。
答案 1 :(得分:0)
创建一个单例类,应用程序中的所有类都可以访问它
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
}
}
很容易使用这门课
int k = Settings.SystemSettings.SettingValue1;