Me gustaría poder obtener el estado real o la semilla o lo que sea de System.Random para poder cerrar una aplicación y cuando el usuario la reinicia, simplemente "vuelve a resembrarla" con la almacenada y continúa como si nunca hubiera sido cerrado.¿Hay alguna manera de captar el estado real de System.Random?
¿Es posible?
Utilizando la idea de Jon, se me ocurrió esto para probarlo;
static void Main(string[] args)
{
var obj = new Random();
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("c:\\test.txt", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
for (var i = 0; i < 10; i++)
Console.WriteLine(obj.Next().ToString());
Console.WriteLine();
formatter = new BinaryFormatter();
stream = new FileStream("c:\\test.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
obj = (Random)formatter.Deserialize(stream);
stream.Close();
for (var i = 0; i < 10; i++)
Console.WriteLine(obj.Next().ToString());
Console.Read();
}
Voy a intentar de mi lado, voy a mantener un ojo aquí al mismo tiempo – Fredou
gracias :-), funciona bien, no pensé en la serialización :-( – Fredou
al mirar el archivo generado, parece que almacenar todo o parte del número aleatorio generado previamente. Esto podría ser grande. ¿Sabes cómo solucionar este problema? – Fredou