public static void RegisterPackets(PacketEndPoint endPoint, PacketUsage packetUsage)
        {
            Assembly assembly = Assembly.GetExecutingAssembly ();

            IEnumerable<Type> possiblePackets =
                assembly.GetTypes ().Where(a => a.GetCustomAttributes<PacketUsageAttribute> ().Any());

            foreach (Type item in possiblePackets)
            {
                var usage = item.GetCustomAttribute<PacketUsageAttribute> ();
                if ((usage.PacketUsage & packetUsage) == packetUsage)
                {
                    var packet = (Packet) Activator.CreateInstance(item);

                    endPoint.RegisterPacket(packet.Code, item);
                }
            }
        }
Example #2
0
 // This is a positional argument
 public PacketUsageAttribute(PacketUsage packetUsage)
 {
     _packetUsage = packetUsage;
 }