public Entry(byte id, Type type, Side validReceivingSide, IMessageDeSerializer deSerializer) { ID = id; Type = type; ValidReceivingSide = validReceivingSide; ValidSendingSide = validReceivingSide.Opposite(); DeSerializer = deSerializer; }
public void Register <T>(byte id, Side validReceivingSide, IMessageDeSerializer <T> deSerializer) where T : IMessage { if (deSerializer == null) { throw new ArgumentNullException(nameof(deSerializer)); } if (_byID.ContainsKey(id)) { throw new ArgumentException( $"Duplicate registry for message ID '{ id }'"); } if (_byType.ContainsKey(typeof(T))) { throw new ArgumentException( $"Duplicate registry for message Type '{ typeof(T) }'"); } var entry = new Entry(id, typeof(T), validReceivingSide, deSerializer); _byID.Add(id, entry); _byType.Add(typeof(T), entry); }