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); }