/// <summary> /// Constructs the packet decpders for the dictionary. /// </summary> /// <returns></returns> private static Dictionary <int[], PacketDecoder> BuildDecoders() { Dictionary <int[], PacketDecoder> builder = new Dictionary <int[], PacketDecoder>(); try { Type[] classes = Assembly.GetExecutingAssembly().GetTypes().Where(a => a.Namespace == $"{Constants.NAMESPACE_PRESENTATION}.Network.Protocol.Packet.Decoder.Impl").ToArray(); foreach (Type decoder in classes) { PacketDecoder @class = Activator.CreateInstance(decoder) as PacketDecoder; builder.Add(@class.GetPacketIds(), @class); } } catch (Exception e) { Console.WriteLine(e.StackTrace); } return(builder); }