示例#1
0
        public Type GetDotNetTypeFrom(NetworkTlvPacket packet)
        {
            var basicMessage = serializer.DeserializePacket(packet.Value, typeof(NetworkMessageBase));

            if (cache.ContainsKey(basicMessage.TypeName))
            {
                return(cache[basicMessage.TypeName]);
            }

            foreach (var assembly in assembliesToLookup)
            {
                var t = assembly.GetTypes().FirstOrDefault(z => z.Name == basicMessage.TypeName);
                if (t == null)
                {
                    continue;
                }

                cache.Add(basicMessage.TypeName, t);
                return(t);
            }
            throw new TypeNotFoundException("Type not found: " + basicMessage.TypeName);
        }