protected override IStorableContent LoadContent(string filename, out Info info) { bool useOldPersistence = XmlParser.CanOpen(filename); IStorableContent content = null; if (useOldPersistence) { var sw = new Stopwatch(); sw.Start(); content = XmlParser.Deserialize <IStorableContent>(filename); sw.Stop(); info = new Info(filename, sw.Elapsed); } else { var ser = new ProtoBufSerializer(); content = (IStorableContent)ser.Deserialize(filename, out SerializationInfo serInfo); info = new Info(filename, serInfo); } if (content == null) { throw new PersistenceException($"Cannot deserialize root element of {filename}"); } return(content); }