public static MServerTable FromFile(string filename) { MServerTable result = null; if (File.Exists(filename)) { using (var stream = File.OpenRead(filename)) { result = new XmlSerializer(typeof(MServerTable)).Deserialize(stream) as MServerTable; } using (var stream = new MemoryStream()) { result.Save(stream); result.InflatedData = stream.ToArray(); } result.Hash = Crc32Provider.ComputeChecksum(result.InflatedData); result.Compress(); } return(result); }