private static void PreparePacketFactory(IPacketFactory packetFactory) { try { var asd = new LoginFailedHandler(null).GetType().Assembly .GetTypesImplementingGenericClass(typeof(GenericPacketHandlerAsync <>)); foreach (var _packetHandler in asd) { if (!(UsefulContainer.Instance.Resolve(_packetHandler) is IPacketHandler packetHandler)) { continue; } var packetType = _packetHandler.BaseType.GenericTypeArguments[0]; packetFactory.RegisterAsync(packetHandler, packetType).ConfigureAwait(false).GetAwaiter().GetResult(); } } catch (Exception e) { Debug.LogError(e); } }