В моем приложении wpf есть экран входа. Экран входа состоит из выпадающего списка с коллекцией людей. В настоящее время я реализовал каталог папок и текстовый файл, созданный при инициализации (если первый раз входе в систему), когда существует папка и файл, он считывает файл и на основе сохраненного значения он загрузит правильного пользователя из коллекции людей.Правильный способ сохранить предыдущую информацию для входа в систему
Мой вопрос - это самый идеальный способ сделать это? Мне интересно, есть ли лучший способ сделать это, я чувствую, что это очень старый школьный метод. Любые советы будут очень признательны.
Например, если Джон Смит входит в систему - в следующий раз, когда Джон запустит приложение, его имя автоматически будет SelectedItem
.
public void CacheInitialize()
{
var folderDirectory = System.AppDomain.CurrentDomain.BaseDirectory + "Cache";
var fileName = "UserCache.txt";
var fileDirectory = folderDirectory + "\\" + fileName;
if (!Directory.Exists(folderDirectory))
{
Directory.CreateDirectory(folderDirectory);
}
if (!File.Exists(fileDirectory))
{
File.WriteAllText(Path.Combine(folderDirectory, fileName), string.Empty);
return;
}
else
{
var filecontent = File.ReadAllText(Path.Combine(folderDirectory, fileName));
if (filecontent != string.Empty)
SelectedUser = Users.First(x => x.Id == int.Parse(filecontent));
}
}
public void CacheSave()
{
var folderDirectory = AppDomain.CurrentDomain.BaseDirectory + "Cache";
var fileName = "cache file3.txt";
var fileDirectory = folderDirectory + "\\" + fileName;
StreamWriter writer = new StreamWriter(fileDirectory);
writer.Write(SelectedUser.Id.ToString());
writer.Close();
}
Непосредственный ответ мне - использовать транзакционную базу данных. Этот файл требует неприятностей! Полагаю, что это действительно зависит от контекста использования приложения и того, как с ним связаны люди. Помогает ли это? http://stackoverflow.com/questions/3784477/c-sharp-approach-for-saving-user-settings-in-a-wpf-application –