using (var file_stream = File.Create("users.xml"))
{
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(file_stream, this);
file_stream.Close();
}
El uso del código anterior funciona a la perfección. Sin embargo, cuando acortarlo a:Xml Serialización sin eliminación
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(File.Create("users.xml"), this);
consigo la siguiente excepción al intentar deserializar el archivo users.xml en la misma prueba: El proceso no puede acceder al 'users.xml' archivo porque es siendo utilizado por otro proceso.
La causa parece ser que el método File.Create devuelve un FileStream abierto, que no puedo cerrar ya que no tengo una referencia del mismo.
¿Es malo o Microsoft? ;-)
Hay un concepto subyacente aquí que te falta (que es fácil de hacer) - lee sobre el uso de objetos que usan la interfaz iDisposable. – overslacked