コード例 #1
0
        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);
        }
コード例 #2
0
        protected override KeyValuePair <Type, MethodInfo> ExtractHandler(MethodInfo handlerMetaType)
        {
            var packetType = PacketHandlerMethodAttribute.GetPacketParameterType(handlerMetaType);

            return(new KeyValuePair <Type, MethodInfo>(packetType, handlerMetaType));
        }