use AppSerializerContext singleton
This commit is contained in:
		
							parent
							
								
									a2ae6d273e
								
							
						
					
					
						commit
						4b5288b237
					
				
					 2 changed files with 3 additions and 2 deletions
				
			
		| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					using System.Text.Json;
 | 
				
			||||||
using System.Text.Json.Serialization;
 | 
					using System.Text.Json.Serialization;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace TanksServer.Interactivity;
 | 
					namespace TanksServer.Interactivity;
 | 
				
			||||||
| 
						 | 
					@ -6,4 +7,5 @@ namespace TanksServer.Interactivity;
 | 
				
			||||||
[JsonSerializable(typeof(IEnumerable<Player>))]
 | 
					[JsonSerializable(typeof(IEnumerable<Player>))]
 | 
				
			||||||
[JsonSerializable(typeof(IEnumerable<string>))]
 | 
					[JsonSerializable(typeof(IEnumerable<string>))]
 | 
				
			||||||
[JsonSerializable(typeof(PlayerInfo))]
 | 
					[JsonSerializable(typeof(PlayerInfo))]
 | 
				
			||||||
 | 
					[JsonSourceGenerationOptions(JsonSerializerDefaults.Web)]
 | 
				
			||||||
internal sealed partial class AppSerializerContext : JsonSerializerContext;
 | 
					internal sealed partial class AppSerializerContext : JsonSerializerContext;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,6 @@ internal sealed class PlayerInfoConnection(
 | 
				
			||||||
    MapEntityManager entityManager
 | 
					    MapEntityManager entityManager
 | 
				
			||||||
) : WebsocketServerConnection(logger, new ByteChannelWebSocket(rawSocket, logger, 0))
 | 
					) : WebsocketServerConnection(logger, new ByteChannelWebSocket(rawSocket, logger, 0))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private readonly AppSerializerContext _context = new(new JsonSerializerOptions(JsonSerializerDefaults.Web));
 | 
					 | 
				
			||||||
    private bool _wantsInfoOnTick = true;
 | 
					    private bool _wantsInfoOnTick = true;
 | 
				
			||||||
    private byte[] _lastMessage = [];
 | 
					    private byte[] _lastMessage = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,7 +53,7 @@ internal sealed class PlayerInfoConnection(
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var info = new PlayerInfo(player.Name, player.Scores, player.Controls.ToDisplayString(), tankInfo);
 | 
					        var info = new PlayerInfo(player.Name, player.Scores, player.Controls.ToDisplayString(), tankInfo);
 | 
				
			||||||
        var response = JsonSerializer.SerializeToUtf8Bytes(info, _context.PlayerInfo);
 | 
					        var response = JsonSerializer.SerializeToUtf8Bytes(info, AppSerializerContext.Default.PlayerInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (response.SequenceEqual(_lastMessage))
 | 
					        if (response.SequenceEqual(_lastMessage))
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue