예제 #1
0
        private void InitializeMessageHandlers(IParameterResolverFactory parameterResolverFactory, IHandlerDefinition handlerDefinition)
        {
            foreach (var method in _inspectedType.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
            {
                _handlerDefinition.CreateHandler(_inspectedType, method, parameterResolverFactory)
                .IfPresent(RegisterHandler);
            }

            foreach (var constructor in _inspectedType.GetConstructors())
            {
                _handlerDefinition.CreateHandler(_inspectedType, constructor, parameterResolverFactory)
                .IfPresent(RegisterHandler);
            }
            _superClassInspectors.ForEach(sci => Handlers.AddRange(sci.Handlers));
            Handlers.Sort(HandlerComparator.Instance);
        }
예제 #2
0
        private void InitializeMessageHandlers(
            IParameterResolverFactory parameterResolverFactory,
            IHandlerDefinition handlerDefinition
            )
        {
            foreach (MethodInfo method in inspectedType.GetMethods())
            {
                var messageHandlingMember =
                    handlerDefinition.CreateHandler <T>(inspectedType, method, parameterResolverFactory);
                this.RegisterHandler(messageHandlingMember);
            }

            foreach (ConstructorInfo constructor in inspectedType.GetConstructors())
            {
                this.RegisterHandler(
                    handlerDefinition.CreateHandler(inspectedType, constructor, parameterResolverFactory)
                    );
            }

            superClassInspectors.ForEach(sci => handlers.AddRange(sci.handlers));
            handlers.Sort(HandlerComparator.instance());
        }