public bool SavePlayerData(Middle.Player player) { string account_tp = player.Account; Middle.PlayerData playerData_tp = player.Data; IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); try { formatter.Serialize(stream, playerData_tp); using (var db = new UserContext()) { var queryResult = db.PlayerDatas.Where(p => p.Account == account_tp).Select(p => p); if (queryResult == null) { return(false); } (queryResult as Player).Data = stream.ToArray(); db.SaveChanges(); } return(true); } catch (Exception ex) { Console.WriteLine("[Error]Create Player Method is error.[Line:144]"); Console.WriteLine(ex.Message); throw new ArgumentNullException($"PlayerData is null.[Line:144]"); } }
public Middle.PlayerData GetPlayerData(string account) { Middle.PlayerData playerDataRet = null; IFormatter formatter = new BinaryFormatter(); Stream stream = new MemoryStream(); try { using (var db = new UserContext()) { var queryResult = db.PlayerDatas.Where(p => p.Account == account).Select(p => p); if (queryResult == null) { throw new ArgumentNullException($"PlayerData is null.[Line:128]"); } stream.Write((queryResult as Player).Data, 0, (queryResult as Player).Data.Length); if (stream == null) { throw new ArgumentNullException($"PlayerData is null.[Line:128]"); } playerDataRet = formatter.Deserialize(stream) as Middle.PlayerData; } return(playerDataRet); } catch (Exception ex) { Console.WriteLine("[Error]Create Player Method is error.[Line:137]"); Console.WriteLine(ex.Message); throw new ArgumentNullException($"PlayerData is null.[Line:128]"); } }
public bool CreatePlayer(string account) { if (!IsSafeString(account)) { //非法字符 return(false); } IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); Middle.PlayerData playerData = new Middle.PlayerData(); try { formatter.Serialize(stream, playerData); } catch (IOException ex) { Console.WriteLine("[Error]Create Player Method is error.[Line:75]"); Console.WriteLine(ex.Message); return(false); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } byte[] byteData = stream.ToArray(); Player player = new Player(account, byteData); using (var db = new UserContext()) { db.PlayerDatas.Add(player); db.SaveChanges(); } return(true); }