我想通过用户配置文件初始化用户配置。可以从注册表中读取该文件的路径。 该文件位于具有用户名称的文件夹中。
所以我需要以下功能:
现在有几种方法可以解决这个问题:
首先,我需要
所以,Shared有一个像UserConfigurationFile这样的函数/属性,它返回配置文件的路径。
要获取文件的路径,我有一个函数InitializeUserConfigurationFile(),它在Shared的构造函数中调用:
class Shared {
public Shared()
{
InitializeUserConfigurationFile();
}
void InitializeUserConfigurationFile()
{
//
// Reads username
//
//
// Reads path from Registry
//
//
// etc.
//
}
//
// etc.
//
}
有更好的建议吗?
当我想初始化我的容器时,我有不同的选择:
STH。像:
class Container
{
Shared shared = new Shared();
public Container()
{
InitializeUserConfiguration();
}
void InitializeUserConfiguration()
{
LoadConfiguration(shared.UserConfigurationFile);
}
void LoadConfiguration(string filename)
{
//
// Initializes all parameters frome filename
//
}
}
STH。像:
Shared shared = new Shared();
Container container = new Container();
container.LoadConfiguration(shared.UserConfigurationFile);
STH。像:
Shared shared = new Shared();
Container container = new Container(shared.UserConfigurationFile);
或容器中的所有内容。?
有很多方法......
我希望有人知道最好的... ...
此致
的Inno
答案 0 :(得分:3)
最好使用.net中存在的标准配置类。例如ApplicationSettingsBase和Configuration。
在这里你可以找到好文章系列:
答案 1 :(得分:1)
对于最佳做法,不使用注册表,并且不要重新发明轮子。
既然你没有提到它,你看过System.Configuration命名空间吗?
.NET Framework构建了一个经过充分测试的完美配置系统。它也是Sys Admins的域名,他们也了解配置文件和附带的工具。
所以目前还不清楚为什么要重新发明轮子,可能会让它变得不那么圆。
有实际的理由避开注册表(分发,备份),但正如仲裁者指出的那样,它不会转移到其他(未来)平台。您是否注意到这些名称空间不是以System?
开头的