В зависимости от сценария.Я хотел бы создать сериализуемый класс, который содержит все данные для сериализации, а затем сериализовать класс в файл перед выходом из приложения.
Затем десериализовать файл (если существует) при запуске приложения.Класс должен быть помечен как Serializable
.
[Serializable]
public class AppState
{
public int Var1 { get; set; }
public long Var2 { get; set; }
public String Var3 { get; set; }
}
Затем, чтобы сериализовать экземпляр этого класса как двоичный файл ...
var state = new AppState();
state.Var1 = 4;
//TODO: populate the state object
var formatter = new BinaryFormatter();
using(var stream = new FileStream("C:\\app.state", FileMode.Create, FileAccess.Write))
{
formatter.Serialize(stream, state);
stream.Close();
}
Чтобы перезагрузить состояние, сначала убедитесь, что файл существует ...
if(File.Exists("C:\\path_to_file")){
//TODO: do whatever you need to here, such as deserializing the file
}
Затем десериализуйте и инициализируйте все необходимые переменные ...
var formatter = new BinaryFormatter();
AppState state = null;
using(var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
state = (AppState) formatter.Deserialize(stream);
}
if(state != null){
//TODO: initialize state
}
Обратите внимание, что существует много способов сериализации данных.Наиболее популярными являются:
- Сериализация JSON
- XML
- Двоичный (как объяснено выше)