protected override IEnumerable <MethodInfo> FindHandlers(Assembly assembly) { var assemblyTypes = assembly.GetTypes(); var methodInfos = assemblyTypes.SelectMany(assemblyType => assemblyType.GetMethods().Where(methodInfo => Attribute.IsDefined(methodInfo, typeof(PacketHandlerMethodAttribute)) && PacketHandlerMethodAttribute.IsValidPacketHandlerMethod(methodInfo))); return(methodInfos); }
protected override KeyValuePair <Type, MethodInfo> ExtractHandler(MethodInfo handlerMetaType) { var packetType = PacketHandlerMethodAttribute.GetPacketParameterType(handlerMetaType); return(new KeyValuePair <Type, MethodInfo>(packetType, handlerMetaType)); }