public ushort GetFeatureId()
 {
     CRC32 hasher = new CRC32();
     uint name = BitConverter.ToUInt32(hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(HeaderName)), 0);
     uint version = BitConverter.ToUInt32(hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Version.ToString())), 0);
     return (ushort)(name * version);
 }
        internal ulong GetIdentifier()
        {
            CRC32 crc = new CRC32();
            byte[] name = crc.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Name));
            byte[] version = crc.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Version.ToString()));

            byte[] temp = new byte[8];
            Array.Copy(name, 0, temp, 0, 4);
            Array.Copy(version, 0, temp, 4, 4);

            return BitConverter.ToUInt64(temp, 0);
        }
 public MessageHandler(uint Seed)
 {
     this.Messages = new SortedList<uint, Type>();
     this.hasher = new CRC32(CRC32.DefaultPolynomial + Seed);
 }