Я хочу инициализировать конфигурацию пользователя через файл конфигурации пользователя. Путь к файлу можно прочитать из реестра.
Файл находится в папке с именем пользователя.
Так что мне нужны следующие функции:
- Чтение строки из реестра
- построение пути к файлу конфигурации
- Чтение файла в объект конфигурации
Теперь есть несколько подходов, чтобы справиться с этим:
Сначала мне нужно
- один «вспомогательный» класс для получения пути к файлу (назовем его Shared)
- один «контейнер» -класс для информации о конфигурации (назовем его Configuration)
Итак, 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
//
}
}
- Или через два шага (через собственный метод LoadConfiguration ())?
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